Documentation

LeanPool.MovingSofa.Development.Geometry.Foundations.Development005

Moving sofa: related mathematical developments #

Moving sofa: related mathematical developments #

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.

The standard two-dimensional Euclidean space over the reals.

Equations
Instances For
    @[instance_reducible]

    The plane ℝ² with the orientation of its standard basis, so that rotations are counterclockwise.

    Equations

    The plane ℝ² has dimension two.

    The horizontal side of the hallway is $(-\infty, 1] \times [0, 1]$.

    Equations
    Instances For

      The vertical side of the hallway is $[0, 1] \times (-\infty, 1]$.

      Equations
      Instances For

        The hallway is the union of its horizontal and vertical sides.

        Equations
        Instances For

          The affine isometry group of the Euclidean plane.

          Equations
          Instances For
            @[instance_reducible]

            The topology on the isometry group E(2), induced from the continuous affine maps of the plane.

            Equations

            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)$.

            Instances For

              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.

              Equations
              Instances For

                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.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Eq. 1-4 of [Ro18], which specifies the constants $A$, $B$, $\varphi$, and $\theta$ of [Ge92].

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem MovingSofa.GerversSofa.ABφθSpec.existsUnique :
                    ∃! ABφθ : ℝ × ℝ × ℝ × ℝ, ABφθSpec ABφθ.1 ABφθ.2.1 ABφθ.2.2.1 ABφθ.2.2.2

                    There exist unique constants $A$, $B$, $\varphi$, and $\theta$ satisfying the spec.

                    noncomputable def MovingSofa.GerversSofa.A :

                    Gerver's constant $A$: the first component of the unique solution of ABφθSpec.

                    Equations
                    Instances For
                      noncomputable def MovingSofa.GerversSofa.B :

                      Gerver's constant $B$: the second component of the unique solution of ABφθSpec.

                      Equations
                      Instances For
                        noncomputable def MovingSofa.GerversSofa.φ :

                        Gerver's angle $\varphi$: the third component of the unique solution of ABφθSpec.

                        Equations
                        Instances For
                          noncomputable def MovingSofa.GerversSofa.θ :

                          Gerver's angle $\theta$: the fourth component of the unique solution of ABφθSpec.

                          Equations
                          Instances For
                            noncomputable def MovingSofa.GerversSofa.r (α : ℝ) :

                            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.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              noncomputable def MovingSofa.GerversSofa.y (α : ℝ) :

                              $y(\alpha) = \int_\alpha^{\pi/2 - \varphi} r(t) \sin t \, dt$, used in the canonical integral-path definition.

                              Equations
                              Instances For
                                noncomputable def MovingSofa.GerversSofa.x (α : ℝ) :

                                $x(\alpha) = 1 - \int_\alpha^{\pi/2 - \varphi} r(t) \cos t \, dt$, used in the canonical integral-path definition.

                                Equations
                                Instances For
                                  noncomputable def MovingSofa.GerversSofa.p (α : ℝ) :

                                  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.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    Gerver's sofa is the sofa according to the rotation path GerversSofa.p.

                                    Equations
                                    Instances For
                                      noncomputable def MovingSofa.sofaConstant :

                                      The sofa constant is the maximal area of a moving sofa.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        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.

                                        The reduced parameter tuple corresponding to the canonical choice of the unique angle solution.

                                        Equations
                                        Instances For

                                          Moving sofa: related mathematical developments #

                                          Geometry / Hallway #

                                          noncomputable def MovingSofa.rotationMap (t : Real.Angle) (p : Point) :

                                          Counterclockwise rotation about the origin.

                                          Equations
                                          Instances For

                                            The horizontal, vertical and rotated vertical strips.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For

                                              The intersection of strips and its two distinguished points.

                                              Equations
                                              Instances For

                                                Corners, walls, rays and quadrants of a hallway.

                                                • innerCorner : Point

                                                  The inner reentrant corner of the hallway.

                                                • outerCorner : Point

                                                  The outer corner opposite the inner corner.

                                                • The outer wall corresponding to the fixed hallway’s line x = 1.

                                                • The inner wall corresponding to the fixed hallway’s line x = 0.

                                                • The outer wall corresponding to the fixed hallway’s line y = 1.

                                                • The inner wall corresponding to the fixed hallway’s line y = 0.

                                                • bRay : Set Point

                                                  The ray on the inner B wall extending away from the corner.

                                                • dRay : Set Point

                                                  The ray on the inner D wall extending away from the corner.

                                                • outerQuadrant : Set Point

                                                  The closed quadrant cut out by the two outer walls.

                                                • innerQuadrant : Set Point

                                                  The open forbidden quadrant behind the inner corner.

                                                Instances For

                                                  The named parts of the fixed hallway.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    noncomputable def MovingSofa.supportingPlacement (s : Set Point) (t : Real.Angle) (p : Point) :

                                                    Rotation followed by the support-determined translation.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For

                                                      The supporting hallway of a nonempty compact set.

                                                      Equations
                                                      Instances For

                                                        The images of all named hallway parts under its supporting placement.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For

                                                          Geometry / Hallway Parts #

                                                          Rotating a real normal direction by a right angle gives the tangent direction.

                                                          theorem MovingSofa.rotationMap_apply_zero (θ : Real.Angle) (x : Point) :
                                                          (rotationMap θ x).ofLp 0 = θ.cos * x.ofLp 0 - θ.sin * x.ofLp 1

                                                          The first coordinate of a rotated point.

                                                          theorem MovingSofa.rotationMap_apply_one (θ : Real.Angle) (x : Point) :
                                                          (rotationMap θ x).ofLp 1 = θ.sin * x.ofLp 0 + θ.cos * x.ofLp 1

                                                          The second coordinate of a rotated point.

                                                          Coordinate bounds for a point of the horizontal side of the hallway.

                                                          Coordinate bounds for a point of the vertical side of the hallway.

                                                          theorem MovingSofa.mem_hallway_iff (q : Point) :
                                                          q ∈ hallway ↔ (q.ofLp 0 ≤ 1 ∧ q.ofLp 1 ≤ 1) ∧ (0 ≤ q.ofLp 0 ∨ 0 ≤ q.ofLp 1)

                                                          A point lies in the hallway exactly when it lies in the outer quadrant and is not strictly inside the inner one.

                                                          Coordinate bounds place a point in the horizontal side of the hallway.

                                                          Coordinate bounds place a point in the vertical side of the hallway.

                                                          Geometry / Hallway Parts Properties #

                                                          A supporting hallway lies in its outer quadrant.

                                                          Geometry / Hallway Ray #

                                                          Coordinate description of the downward ray of a supporting hallway.

                                                          Coordinate description of the leftward ray of a supporting hallway.

                                                          The part of a supporting hallway ray above a transverse line has the expected length.

                                                          A planar set on one line of a moving frame, with bounded tangent coordinate, is short.

                                                          Geometry / Hallway Support #

                                                          Two supporting lines at angular difference exactly π / 2 meet at the outer corner of the rotating supporting hallway.

                                                          The outer corner of the rotating supporting hallway is its inner corner translated by the frame sum u_t + v_t.

                                                          Geometry / Parallelogram #

                                                          The strip intersection is described by its vertical and rotated coordinates.

                                                          Projection on the downward unit normal negates the vertical coordinate.

                                                          The horizontal coordinate is the projection on the normal at angle zero.

                                                          The vertical coordinate is the projection on the tangent at angle zero.

                                                          The vertical coordinate is the projection on the upward unit normal.

                                                          Projection on the leftward tangent at a right angle negates the horizontal coordinate.

                                                          Projection on the leftward tangent at the straight angle negates the vertical coordinate.

                                                          The projection of a multiple of the horizontal normal on another unit normal.

                                                          The horizontal bottom of the strip intersection has zero downward support.

                                                          Geometry / Parallelogram Gap #

                                                          Geometry / Path Half Plane Cap #

                                                          The set satisfying the horizontal base and all upper support constraints of a path.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            theorem MovingSofa.outerPathConstraintSet_isCap (x : ↑(Set.Icc 0 (Real.pi / 2)) → Point) (hx : x ⟨0, ⋯⟩ = 0) (hbottom : ∃ p ∈ outerPathConstraintSet x, p.ofLp 1 = 0) (htop : ∃ p ∈ outerPathConstraintSet x, p.ofLp 1 = 1) :

                                                            Geometry / Reflection #

                                                            Exchange the two coordinates of the Euclidean plane.

                                                            Equations
                                                            Instances For

                                                              Reflection exchanging the normals at angles zero and ω + π / 2.

                                                              Equations
                                                              Instances For

                                                                First coordinate of the cap reflection.

                                                                theorem MovingSofa.capReflection_apply_one (ω : ℝ) (p : Point) :
                                                                ((capReflection ω) p).ofLp 1 = Real.cos ω * p.ofLp 0 + Real.sin ω * p.ofLp 1

                                                                Second coordinate of the cap reflection.

                                                                noncomputable def MovingSofa.stripTopReflection (ω : ℝ) (p : Point) :

                                                                Reflection across the line through the upper vertex of the cap strip.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  theorem MovingSofa.stripTopReflection_eq_capReflection (ω : ℝ) (hω0 : 0 < ω) (hωle : ω ≤ Real.pi / 2) :

                                                                  The strip-top reflection is the explicit cap reflection.

                                                                  The strip-top reflection fixes the upper strip vertex.

                                                                  The cap reflection is an involution.

                                                                  noncomputable def MovingSofa.reflectedAngle (ω : ℝ) (a : Real.Angle) :

                                                                  Reflection of a normal angle across the cap-reflection axis.

                                                                  Equations
                                                                  Instances For

                                                                    Reflection of normal angles is involutive.

                                                                    theorem MovingSofa.reflectedAngle_coe (ω t : ℝ) :
                                                                    reflectedAngle ω ↑t = ↑(ω + Real.pi / 2 - t)

                                                                    Coercion formula for a reflected real angle.

                                                                    The cap reflection transports normal vectors at real angles.

                                                                    The cap reflection reverses tangent vectors at real angles.

                                                                    The cap reflection transports normal vectors by reflected angles.

                                                                    The cap reflection reverses tangent vectors at reflected angles.

                                                                    Inner products with normals transform under the cap reflection.

                                                                    Inner products with tangents transform under the cap reflection.

                                                                    theorem MovingSofa.capReflection_image_normalHalfPlane (ω h : ℝ) (a : Real.Angle) (upper strict : Bool) :
                                                                    ⇑(capReflection ω) '' normalHalfPlane a h upper strict = normalHalfPlane (reflectedAngle ω a) h upper strict

                                                                    The cap reflection transports every open or closed normal half-plane.

                                                                    Geometry / Supporting Hallway #

                                                                    theorem MovingSofa.subset_supportingHallway (s : Set Point) (t : Real.Angle) (hs : s.Nonempty) (hc : IsCompact s) (hL : ∃ (v : Point), s ⊆ (fun (p : Point) => rotationMap t p + v) '' hallway) :

                                                                    Moving sofa: related mathematical developments #

                                                                    Analysis / Surface Measure / Upper Graph #

                                                                    The upper graph height is the greatest vertical coordinate in its fiber.

                                                                    theorem MovingSofa.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

                                                                    An attained upper graph point belongs to the convex body.

                                                                    theorem MovingSofa.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)).ofLp 1) :
                                                                    p = o + e.symm !₂[(e (p - o)).ofLp 0, upperGraphHeight K o e ((e (p - o)).ofLp 0)]

                                                                    A boundary point whose exterior normal has positive vertical coordinate lies on the upper coordinate graph.

                                                                    The upper height function of a convex body is concave on its projection.

                                                                    The horizontal projection is the interval between its compact extrema.

                                                                    The upper boundary height is locally Lipschitz inside its projection interval.

                                                                    The upward normal determined by the derivative of an upper graph is exterior.

                                                                    Angular normal vectors have norm one.

                                                                    A point of a convex body admitting an exterior unit normal belongs to its frontier.

                                                                    A differentiable interior point of an upper boundary graph is regular.

                                                                    Points of an upper graph lying above nondifferentiability parameters.

                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For

                                                                      An irregular upper graph has zero one-dimensional Hausdorff measure.

                                                                      The irregular boundary of a planar convex body with nonempty interior has zero one-dimensional Hausdorff measure.

                                                                      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.

                                                                      Every boundary point of a convex body with nonempty interior lies on a supporting exposed face.

                                                                      Every exposed face of a convex body lies on its boundary.

                                                                      Analysis / Surface Measure / Regular Boundary Helpers #

                                                                      A planar convex body with nonempty interior has no segment presentation.

                                                                      A convex body with nonempty interior is not a singleton.

                                                                      Surface area measure is finite when the convex body has nonempty interior.

                                                                      Any extension of the exterior-normal angle from the regular boundary gives the surface area measure as a pushforward of frontier length.

                                                                      Analysis / Surface Measure / Graph Integral #

                                                                      theorem MovingSofa.norm_upperGraphSurfaceIntegrand_le (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) {ε M : ℝ} (hε : 0 < ε) (hsupport : ∀ (t : Real.Angle), (e (normalVector t)).ofLp 1 < ε → ψ t = 0) (hM : ∀ (t : Real.Angle), ‖ψ t‖ ≤ M) (x : ℝ) :

                                                                      A normal support cutoff gives a uniform bound on the weighted graph density.

                                                                      theorem MovingSofa.integrable_upperGraphSurfaceIntegrand (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) {ε : ℝ} (hε : 0 < ε) (hsupport : ∀ (t : Real.Angle), (e (normalVector t)).ofLp 1 < ε → ψ t = 0) (a b : ℝ) :

                                                                      The weighted surface integrand of an upper graph is integrable on its horizontal projection interval.

                                                                      noncomputable def MovingSofa.upperGraphWeight (K : ConvexBody Point) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (p : Point) :

                                                                      Evaluate an angular weight at the upper graph’s normal direction above a point’s abscissa.

                                                                      Equations
                                                                      Instances For
                                                                        theorem MovingSofa.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 : Point) in (fun (x : ℝ) => o + e.symm !₂[x, upperGraphHeight K o e x]) '' Set.Icc ((horizontalBounds K o e).1 + 1 / (↑n + 1)) ((horizontalBounds K o e).2 - 1 / (↑n + 1)), upperGraphWeight K o e ψ p ∂MeasureTheory.Measure.hausdorffMeasure 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

                                                                        Integrals over the inner upper graph equal integrals over its coordinate interval.

                                                                        theorem MovingSofa.tendsto_integral_innerUpperGraph (K : ConvexBody Point) (hK : (interior ↑K).Nonempty) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ) (hψ : Continuous ψ) {ε : ℝ} (hε : 0 < ε) (hsupport : ∀ (t : Real.Angle), (e (normalVector t)).ofLp 1 < ε → ψ t = 0) :
                                                                        Filter.Tendsto (fun (n : ℕ) => ∫ (p : Point) in (fun (x : ℝ) => o + e.symm !₂[x, upperGraphHeight K o e x]) '' Set.Icc ((horizontalBounds K o e).1 + 1 / (↑n + 1)) ((horizontalBounds K o e).2 - 1 / (↑n + 1)), upperGraphWeight K o e ψ p ∂MeasureTheory.Measure.hausdorffMeasure 1) Filter.atTop (nhds (∫ (p : Point) in frontier ↑K, ψ (exteriorNormalAngle K p) ∂MeasureTheory.Measure.hausdorffMeasure 1))

                                                                        Weighted integrals over compact inner upper graphs converge to the weighted integral over the full frontier.

                                                                        A planar convex body with nonempty interior has distinct horizontal bounds in every isometric coordinate frame.

                                                                        Analysis / Surface Measure / Construction #

                                                                        theorem MovingSofa.surfaceAreaMeasure_construction (K : ConvexBody Point) :

                                                                        Analysis / Surface Measure / Graph Convergence #

                                                                        The angle of a planar vector varies continuously away from zero.

                                                                        theorem MovingSofa.continuous_surfaceDensity_of_slope (e : Point ≃ₗᵢ[ℝ] Point) {ψ : Real.Angle → ℝ} (hψ : Continuous ψ) :
                                                                        Continuous fun (r : ℝ) => ψ (vectorNormalAngle (e.symm !₂[-r, 1])) * √(1 + r ^ 2)

                                                                        The weighted upper-graph surface density is continuous as a function of slope.

                                                                        theorem MovingSofa.exists_tendsto_points_with_horizontal_coordinate (K : ℕ → ConvexBody Point) (L : ConvexBody Point) (hlim : Filter.Tendsto (fun (n : ℕ) => Metric.hausdorffDist ↑(K n) ↑L) Filter.atTop (nhds 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {p : Point} (hp : p ∈ L) (hpint : (e (p - o)).ofLp 0 ∈ Set.Ioo (horizontalBounds L o e).1 (horizontalBounds L o e).2) :
                                                                        ∃ (q : ℕ → Point), (∀ (n : ℕ), q n ∈ K n) ∧ Filter.Tendsto q Filter.atTop (nhds p) ∧ ∀ᶠ (n : ℕ) in Filter.atTop, (e (q n - o)).ofLp 0 = (e (p - o)).ofLp 0

                                                                        Points on an interior horizontal fiber can be approximated within the same fibers.

                                                                        Upper graph heights converge at every interior point of the limit projection.

                                                                        Upper graph surface densities converge almost everywhere on the interior limit projection.

                                                                        theorem MovingSofa.tendsto_integral_surfaceAreaMeasure_of_hausdorffDist (K : ℕ → ConvexBody Point) (L : ConvexBody Point) (hlim : Filter.Tendsto (fun (n : ℕ) => Metric.hausdorffDist ↑(K n) ↑L) Filter.atTop (nhds 0)) (o : Point) (e : Point ≃ₗᵢ[ℝ] Point) {ψ : Real.Angle → ℝ} (hψ : Continuous ψ) {ε : ℝ} (hε : 0 < ε) (hsupport : ∀ (t : Real.Angle), (e (normalVector t)).ofLp 1 < ε → ψ t = 0) :

                                                                        Weighted upper-normal surface integrals are continuous under Hausdorff convergence.

                                                                        Analysis / Surface Measure / Properties #

                                                                        theorem MovingSofa.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) '' Set.Icc a b) (p : Point) (hsub : ∀ t ∈ E, exposedEdge K t ⊆ {p}) :

                                                                        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 MovingSofa.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) (hpb : p ∈ exposedEdge K ↑b) :
                                                                        (surfaceAreaMeasure K) ((fun (s : ℝ) => ↑s) '' Set.Ioo a b) = 0

                                                                        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.

                                                                        Analysis / Surface Measure / Boundary Extension #

                                                                        theorem MovingSofa.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 : Fin 2) (t : ↑(Set.Icc a b)), (f i).toFun t = (edgeVertices K ↑↑t).1.ofLp i) (hinc : ∀ (c d : ↑(Set.Icc a b)), c < d → ∀ (i : Fin 2), (edgeVertices K ↑↑d).1.ofLp i - (edgeVertices K ↑↑c).1.ofLp i = ∫ (u : Real.Angle) in (fun (t : ℝ) => ↑t) '' Set.Ioc ↑c ↑d, (tangentVector u).ofLp i ∂surfaceAreaMeasure K) (i : Fin 2) (E : Set ↑(Set.Icc a b)) :
                                                                        MeasurableSet E → (∀ t ∈ E, a < ↑t) → (intervalStieltjesMeasure (f i)) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, (tangentVector u).ofLp i ∂surfaceAreaMeasure K

                                                                        Agreement of positive-vertex increments with tangent-coordinate surface integrals extends from half-open subintervals to every measurable set avoiding the initial endpoint.

                                                                        Analysis / Surface Measure / Opposite #

                                                                        The opposite-angle surface measure and support function.

                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For

                                                                          The opposite surface measure is the half-turn translate of the surface measure.

                                                                          The opposite support function of a convex body is continuous in the normal direction.

                                                                          theorem MovingSofa.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 : Real.Angle) in (fun (s : ℝ) => ↑s) '' Set.Ioo a b, f (t + ↑Real.pi) ∂(oppositeSurfaceData K).1 = ∫ (t : Real.Angle) in (fun (s : ℝ) => ↑s) '' Set.Ioo a' b', f t ∂surfaceAreaMeasure K

                                                                          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 MovingSofa.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)) (hpb : p ∈ exposedEdge K ↑(b + Real.pi)) :
                                                                          (oppositeSurfaceData K).1 ((fun (s : ℝ) => ↑s) '' Set.Ioo a b) = 0

                                                                          The opposite surface measure vanishes on an open angular window whose half-turn translate carries a single support point.

                                                                          Analysis / Surface Measure / Weak Convergence #

                                                                          theorem MovingSofa.exists_normalCoordinate_partition :
                                                                          ∃ (e : Fin 4 → Point ≃ₗᵢ[ℝ] Point) (χ : Fin 4 → Real.Angle → ℝ), (∀ (i : Fin 4), Continuous (χ i)) ∧ (∀ (t : Real.Angle), ∑ i : Fin 4, χ i t = 1) ∧ ∀ (i : Fin 4) (t : Real.Angle), ((e i) (normalVector t)).ofLp 1 < 1 / 2 → χ i t = 0

                                                                          Four coordinate half-circles admit a continuous partition of unity supported where the upward component of the normal is at least one half.

                                                                          theorem MovingSofa.tendsto_surfaceIntegral_of_normal_patches (K : ℕ → ConvexBody Point) (L : ConvexBody Point) (hpatch : ∀ (e : Point ≃ₗᵢ[ℝ] Point) (ψ : Real.Angle → ℝ), Continuous ψ → (∀ (t : Real.Angle), (e (normalVector t)).ofLp 1 < 1 / 2 → ψ t = 0) → Filter.Tendsto (fun (n : ℕ) => ∫ (t : Real.Angle), ψ t ∂surfaceAreaMeasure (K n)) Filter.atTop (nhds (∫ (t : Real.Angle), ψ t ∂surfaceAreaMeasure L))) (φ : Real.Angle → ℝ) (hφ : Continuous φ) :

                                                                          Convergence for test functions supported in upward normal patches implies convergence for all continuous test functions.

                                                                          Analysis / Surface Measure / Atom Limits #

                                                                          theorem MovingSofa.le_surfaceAreaMeasure_atom_of_tendsto {K : ℕ → ConvexBody Point} {L : ConvexBody Point} (hK : Filter.Tendsto (fun (n : ℕ) => Metric.hausdorffDist ↑(K n) ↑L) Filter.atTop (nhds 0)) {u : Real.Angle} {x : ℕ → ℝ} {a : ℝ} (hx : Filter.Tendsto x Filter.atTop (nhds a)) (hle : ∀ (n : ℕ), x n ≤ ((surfaceAreaMeasure (K n)) {u}).toReal) :

                                                                          An upper bound by a moving surface atom passes to a Hausdorff limit.

                                                                          Analysis / Surface Measure / Weighted Boundary #

                                                                          theorem MovingSofa.measurableEmbedding_angleCoe_Ioc {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) :
                                                                          MeasurableEmbedding fun (t : ↑(Set.Ioc a b)) => ↑↑t

                                                                          On a half-open parameter interval of at most one turn, the angular projection is a measurable embedding.

                                                                          theorem MovingSofa.exists_bounded_measurable_angle_extension {a b : ℝ} (hturn : b ≤ a + 2 * Real.pi) (ψ : ↑(Set.Ioc a b) → ℝ) (hψm : Measurable ψ) (C : ℝ) (hC : 0 ≤ C) (hψb : ∀ (t : ↑(Set.Ioc a b)), ‖ψ t‖ ≤ C) :
                                                                          ∃ (Q : Real.Angle → ℝ), Measurable Q ∧ (∀ (u : Real.Angle), ‖Q u‖ ≤ C) ∧ ∀ (t : ↑(Set.Ioc a b)), Q ↑↑t = ψ t

                                                                          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 MovingSofa.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 ↑(Set.Icc a b)), MeasurableSet E → (∀ t ∈ E, a < ↑t) → (intervalStieltjesMeasure (f i)) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, (tangentVector u).ofLp i ∂surfaceAreaMeasure K) (i : Fin 2) (Q : Real.Angle → ℝ) (C : ℝ) (hQm : Measurable fun (t : ↑(Set.Ioc a b)) => Q ↑↑t) (hQb : ∀ (u : Real.Angle), ‖Q u‖ ≤ C) (E : Set ↑(Set.Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < ↑t) :
                                                                          intervalStieltjesIntegral (f i) (fun (t : ↑(Set.Icc a b)) => Q ↑↑t) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, Q u * (tangentVector u).ofLp i ∂surfaceAreaMeasure K

                                                                          A bounded measurable angular weight may be transported through the positive-vertex Stieltjes identity, coordinate by coordinate.

                                                                          theorem MovingSofa.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 ↑(Set.Icc a b)), MeasurableSet E → (∀ t ∈ E, a < ↑t) → (intervalStieltjesMeasure (f i)) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, (tangentVector u).ofLp i ∂surfaceAreaMeasure K) (i : Fin 2) (Q : Real.Angle → ℝ) (hQ : Continuous Q) (E : Set ↑(Set.Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < ↑t) :
                                                                          intervalStieltjesIntegral (f i) (fun (t : ↑(Set.Icc a b)) => Q ↑↑t) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, Q u * (tangentVector u).ofLp i ∂surfaceAreaMeasure K

                                                                          A continuous angular weight may be transported through the positive-vertex Stieltjes identity, coordinate by coordinate.

                                                                          theorem MovingSofa.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 : ↑(Set.Ioc a b)) => Q ↑↑t) (hQb : ∀ (u : Real.Angle), ‖Q u‖ ≤ C) (S : Set Real.Angle) (hS : MeasurableSet S) (hSsub : S ⊆ Set.range fun (t : ↑(Set.Ioc a b)) => ↑↑t) :

                                                                          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 MovingSofa.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 ↑(Set.Icc a b)), MeasurableSet E → (∀ t ∈ E, a < ↑t) → (intervalStieltjesMeasure (f i)) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, (tangentVector u).ofLp i ∂surfaceAreaMeasure K) (φ : Fin 2 → ↑(Set.Icc a b) → ℝ) (C : ℝ) (hC : 0 ≤ C) (hφm : ∀ (i : Fin 2), Measurable (φ i)) (hφb : ∀ (i : Fin 2) (t : ↑(Set.Icc a b)), ‖φ i t‖ ≤ C) (g : Real.Angle → ℝ) (hg : ∀ (t : ↑(Set.Icc a b)), a < ↑t → ∑ i : Fin 2, φ i t * (tangentVector ↑↑t).ofLp i = g ↑↑t) (E : Set ↑(Set.Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < ↑t) :
                                                                          ∑ i : Fin 2, intervalStieltjesIntegral (f i) (φ i) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, g u ∂surfaceAreaMeasure K

                                                                          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 MovingSofa.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 ↑(Set.Icc a b)), MeasurableSet E → (∀ t ∈ E, a < ↑t) → (intervalStieltjesMeasure (f i)) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, (tangentVector u).ofLp i ∂surfaceAreaMeasure K) (E : Set ↑(Set.Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < ↑t) :
                                                                          ∑ i : Fin 2, intervalStieltjesIntegral (f i) (fun (t : ↑(Set.Icc a b)) => (tangentVector ↑↑t).ofLp i) E = ((surfaceAreaMeasure K) ((fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E)).toReal

                                                                          Pairing the positive-vertex Stieltjes measure with the tangent frame gives surface mass.

                                                                          theorem MovingSofa.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 ↑(Set.Icc a b)), MeasurableSet E → (∀ t ∈ E, a < ↑t) → (intervalStieltjesMeasure (f i)) E = ∫ (u : Real.Angle) in (fun (t : ↑(Set.Icc a b)) => ↑↑t) '' E, (tangentVector u).ofLp i ∂surfaceAreaMeasure K) (E : Set ↑(Set.Icc a b)) (hE : MeasurableSet E) (hEa : ∀ t ∈ E, a < ↑t) :
                                                                          ∑ i : Fin 2, intervalStieltjesIntegral (f i) (fun (t : ↑(Set.Icc a b)) => (normalVector ↑↑t).ofLp i) E = 0

                                                                          Pairing the positive-vertex Stieltjes measure with the normal frame vanishes.

                                                                          Moving sofa: related mathematical developments #

                                                                          Cap / Contacts #

                                                                          noncomputable def MovingSofa.directionalWidth (s : Set Point) (t : Real.Angle) :

                                                                          Width in a normal direction, for geometric use on nonempty compact sets.

                                                                          Equations
                                                                          Instances For
                                                                            noncomputable def MovingSofa.capVertices {ω : ℝ} (K : CapSpace ω) (t : ℝ) :

                                                                            The positive/negative contacts at the two outer supporting walls.

                                                                            Equations
                                                                            Instances For

                                                                              The positive/negative right and left tangent arm lengths of a right-angle cap.

                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                def MovingSofa.capWedge {ω : ℝ} (K : CapSpace ω) (t : ℝ) :

                                                                                The open inner quadrant clipped by the fan.

                                                                                Equations
                                                                                Instances For
                                                                                  noncomputable def MovingSofa.wedgeEndpoints {ω : ℝ} (K : CapSpace ω) (t : ℝ) :

                                                                                  The two inner-wall intersections with the lower fan boundary lines.

                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    noncomputable def MovingSofa.wedgeGaps {ω : ℝ} (K : CapSpace ω) (t : ℝ) :

                                                                                    Signed right and left gaps between the wedge endpoints and bottom cap contacts.

                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For

                                                                                      The selected short boundary arc, including only the specified endpoints.

                                                                                      Equations
                                                                                      Instances For
                                                                                        theorem MovingSofa.wedgeGaps_fst_eq_supportValue {ω : ℝ} (K : CapSpace ω) (t : ℝ) :
                                                                                        (wedgeGaps K t).1 = supportValue (↑↑K) 0 - (supportValue ↑↑K ↑t - 1) / Real.cos t

                                                                                        The right wedge gap in support-function coordinates.

                                                                                        theorem MovingSofa.wedgeGaps_snd_eq_supportValue {ω : ℝ} (K : CapSpace ω) (t : ℝ) :
                                                                                        (wedgeGaps K t).2 = supportValue ↑↑K ↑(ω + Real.pi / 2) - (supportValue ↑↑K ↑(t + Real.pi / 2) - 1) / Real.cos (ω - t)

                                                                                        The left wedge gap in support-function coordinates.

                                                                                        theorem MovingSofa.wedgeEndpoints_fst_coords {ω : ℝ} (K : CapSpace ω) (t : ℝ) :
                                                                                        (wedgeEndpoints K t).1.ofLp 0 = (supportValue ↑↑K ↑t - 1) / Real.cos t ∧ (wedgeEndpoints K t).1.ofLp 1 = 0

                                                                                        The right wedge endpoint lies on the horizontal axis, at the horizontal intercept of the right inner wall.

                                                                                        For a right-angle cap the left wedge endpoint also lies on the horizontal axis, at the horizontal intercept of the left inner wall.

                                                                                        Cap / Arm Coordinates #

                                                                                        Express the two positive arm lengths through support and moving-frame coordinates.

                                                                                        Cap / Contact Identities #

                                                                                        Cap / Half Planes #

                                                                                        theorem MovingSofa.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 = ⋂ c ∈ constraints, normalHalfPlane c.1 c.2 false false

                                                                                        A finite set of allowed normals gives a finite supporting-half-plane representation.

                                                                                        Translation preserves a half-plane representation's allowed normals.

                                                                                        theorem MovingSofa.CapSpace.subset_capFan {ω : ℝ} (K : CapSpace ω) :
                                                                                        ↑↑K ⊆ capFan ω

                                                                                        A normalized cap is contained in its lower fan.

                                                                                        theorem MovingSofa.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) < supportValue ↑↑K ↑t) :
                                                                                        p ∈ ↑↑K

                                                                                        Fan membership and strict upper support inequalities imply cap membership.

                                                                                        A normalized cap lies in the intersection of its two unit strips.

                                                                                        A half-plane representation can be tightened at every allowed normal.

                                                                                        theorem MovingSofa.CapSpace.mem_of_mem_capFan_of_le_supportValue {ω : ℝ} (K : CapSpace ω) {p : Point} (hp : p ∈ capFan ω) (hupper : ∀ t ∈ capUpperAngles ω, inner ℝ p (normalVector ↑t) ≤ supportValue ↑↑K ↑t) :
                                                                                        p ∈ ↑↑K

                                                                                        A fan point satisfying all upper supporting inequalities belongs to the cap.

                                                                                        theorem MovingSofa.CapSpace.supportValue_upper_bounds {ω t : ℝ} (K : CapSpace ω) (ht : t ∈ Set.Ioo 0 ω) :
                                                                                        supportValue ↑↑K ↑t ≤ Real.cos t * supportValue (↑↑K) 0 + Real.sin t ∧ supportValue ↑↑K ↑(t + Real.pi / 2) ≤ Real.sin (ω - t) + Real.cos (ω - t) * supportValue ↑↑K ↑(ω + Real.pi / 2)

                                                                                        Upper support bounds supplied by the two unit-height constraints of a cap.

                                                                                        theorem MovingSofa.CapSpace.inner_normalVector_pi_div_two_nonneg {ω : ℝ} (K : CapSpace ω) {q : Point} (hq : q ∈ ↑↑K) :

                                                                                        Every point of a cap lies above the horizontal base line.

                                                                                        theorem MovingSofa.CapSpace.base_projection_mem (K : CapSpace (Real.pi / 2)) {q : Point} (hq : q ∈ ↑↑K) :
                                                                                        q - q.ofLp 1 • normalVector ↑(Real.pi / 2) ∈ ↑↑K

                                                                                        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 MovingSofa.CapSpace.apply_one_eq_one (K : CapSpace (Real.pi / 2)) {p : Point} (hp : inner ℝ p (normalVector ↑(Real.pi / 2)) = supportValue ↑↑K ↑(Real.pi / 2)) :
                                                                                        p.ofLp 1 = 1

                                                                                        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 MovingSofa.CapSpace.edgeVertices_fst_apply_one_eq_zero (K : CapSpace (Real.pi / 2)) {s : ℝ} (hs : Real.sin s = 0) (hface : (edgeVertices ↑K ↑s).1 = (edgeVertices ↑K ↑s).2) :
                                                                                        (edgeVertices ↑K ↑s).1.ofLp 1 = 0

                                                                                        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 MovingSofa.hasHalfPlaneRepresentation_of_base_projection (M : ConvexBody Point) (hbase : supportValue ↑M ↑(3 * Real.pi / 2) = 0) (hproj : ∀ q ∈ ↑M, q - q.ofLp 1 • normalVector ↑(Real.pi / 2) ∈ ↑M) :

                                                                                        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.

                                                                                        Cap / Fan Projection #

                                                                                        theorem MovingSofa.supportValue_nonneg_of_mem_capUpperAngles {ω : ℝ} (K : CapSpace ω) (hω : ω < Real.pi / 2) {φ : ℝ} (hφ : φ ∈ capUpperAngles ω) :
                                                                                        0 ≤ supportValue ↑↑K ↑φ

                                                                                        Support values in the upper angular range of a non-right cap are nonnegative.

                                                                                        theorem MovingSofa.zero_mem_cap_of_lt {ω : ℝ} (K : CapSpace ω) (hω : ω < Real.pi / 2) :
                                                                                        0 ∈ ↑↑K

                                                                                        The origin belongs to every cap of angle strictly below a right angle.

                                                                                        The normal projection of the zero-angle support value belongs to the cap.

                                                                                        At a right angle, the opposite normal projection belongs to the cap.

                                                                                        For a non-right cap, the terminal tangent projection belongs to the cap.

                                                                                        Cap / Hallway Quadrant #

                                                                                        The inward quadrant of the supporting hallway at angle t is the inward quadrant of s written in support-value coordinates.

                                                                                        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).

                                                                                        theorem MovingSofa.CapSpace.exposedEdge_subset_singleton_of_isMaxOn (K : CapSpace (Real.pi / 2)) {q : Point} (hq : q ∈ ↑↑K) {t : ℝ} (hcos : Real.cos t ≠ 0) (hsin : Real.sin t < 0) (hmax : IsMaxOn (fun (p : Point) => p.ofLp 0 * Real.cos t) (↑↑K) q) :
                                                                                        exposedEdge ↑K ↑t ⊆ {q - q.ofLp 1 • normalVector ↑(Real.pi / 2)}

                                                                                        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 MovingSofa.CapSpace.exists_exposedEdge_subset_singleton (K : CapSpace (Real.pi / 2)) :
                                                                                        ∃ (pl : Point) (pr : Point), (∀ (t : ℝ), Real.cos t < 0 → Real.sin t < 0 → exposedEdge ↑K ↑t ⊆ {pl}) ∧ ∀ (t : ℝ), 0 < Real.cos t → Real.sin t < 0 → exposedEdge ↑K ↑t ⊆ {pr}

                                                                                        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 MovingSofa.CapSpace.surfaceAreaMeasure_image_Ioo_lower_eq_zero (K : CapSpace (Real.pi / 2)) :
                                                                                        (surfaceAreaMeasure ↑K) ((fun (s : ℝ) => ↑s) '' Set.Ioo Real.pi (3 * Real.pi / 2)) = 0 ∧ (surfaceAreaMeasure ↑K) ((fun (s : ℝ) => ↑s) '' Set.Ioo (3 * Real.pi / 2) (2 * Real.pi)) = 0

                                                                                        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 MovingSofa.CapSpace.setIntegral_compl_image_Icc_zero_pi_eq_zero (K : CapSpace (Real.pi / 2)) (f : Real.Angle → ℝ) (hf : f ↑(3 * Real.pi / 2) = 0) :
                                                                                        ∫ (t : Real.Angle) in ((fun (s : ℝ) => ↑s) '' Set.Icc 0 Real.pi)ᶜ, f t ∂surfaceAreaMeasure ↑K = 0

                                                                                        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.

                                                                                        Cap / Reflection Geometry #

                                                                                        Image of a convex body under the cap reflection.

                                                                                        Equations
                                                                                        Instances For

                                                                                          Support values of a reflected body are indexed by reflected normal angles.

                                                                                          theorem MovingSofa.reflectedAngle_mem_capNormals {ω : ℝ} (a : Real.Angle) (ha : a ∈ (fun (t : ℝ) => ↑t) '' capUpperAngles ω ∪ capLowerNormals ω) :
                                                                                          reflectedAngle ω a ∈ (fun (t : ℝ) => ↑t) '' capUpperAngles ω ∪ capLowerNormals ω

                                                                                          A reflected normal remains among the allowed cap normals.

                                                                                          Reflect a half-plane presentation when its allowed normals are transported.

                                                                                          Reflection preserves the standard cap half-plane presentation.

                                                                                          Reflection exchanges the normalized upper normal at ω with the vertical normal.

                                                                                          Reflection exchanges the vertical normal with the normalized upper normal at ω.

                                                                                          Reflection exchanges the two lower cap normals.

                                                                                          Reflection exchanges the two lower cap normals.

                                                                                          theorem MovingSofa.reflectedBody_isCap {ω : ℝ} (K : CapSpace ω) :
                                                                                          IsCap ω (reflectedBody ω ↑K)

                                                                                          Reflection preserves the normalized cap conditions.

                                                                                          The cap reflection preserves the lower fan.

                                                                                          theorem MovingSofa.reflectedAngle_sub (ω t : ℝ) :
                                                                                          reflectedAngle ω ↑(ω - t) = ↑(t + Real.pi / 2)

                                                                                          Reflection sends the complementary normal to its paired normal.

                                                                                          Reflection sends the complementary paired normal back to the original normal.

                                                                                          theorem MovingSofa.reflectedAngle_add_pi_div_two (ω t : ℝ) :
                                                                                          reflectedAngle ω ↑(t + Real.pi / 2) = ↑(ω - t)

                                                                                          Reflection sends a paired normal to the complementary normal.

                                                                                          Reflection transports inward quadrants at complementary angles.

                                                                                          The preimage and image of a set agree under the involutive cap reflection.

                                                                                          The cap reflection preserves the real Lebesgue area of measurable sets.

                                                                                          The vertical reflection of a body has mirrored support values.

                                                                                          The vertical reflection mirrors normal projections.

                                                                                          Cap / Support Intersections #

                                                                                          theorem MovingSofa.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) '' R)) (hR : ∀ r ∈ R, r ∈ Set.Icc (a - Real.pi) a ∨ r ∈ Set.Icc b (b + Real.pi)) :

                                                                                          Adjacent allowed support normals meet in the represented convex body.

                                                                                          Cap / Top Corner #

                                                                                          Every polygon cap of angle less than pi/2 contains the top parallelogram corner.

                                                                                          Cap / Vertical #

                                                                                          theorem MovingSofa.CapSpace.mem_of_fst_eq_of_snd_le {ω : ℝ} (K : CapSpace ω) {p q : Point} (hp : p ∈ ↑↑K) (hq : q ∈ capFan ω) (hx : q.ofLp 0 = p.ofLp 0) (hy : q.ofLp 1 ≤ p.ofLp 1) :
                                                                                          q ∈ ↑↑K

                                                                                          A cap is closed under downward vertical movement that remains inside its fan.

                                                                                          Moving sofa: related mathematical developments #

                                                                                          Analysis / Surface Measure / Arc Convergence #

                                                                                          theorem MovingSofa.tendsto_integral_surfaceAreaMeasure_Ioc_of_fixed_atoms (K : ℕ → ConvexBody Point) (L : ConvexBody Point) (hlim : Filter.Tendsto (fun (n : ℕ) => Metric.hausdorffDist ↑(K n) ↑L) Filter.atTop (nhds 0)) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (ha : ∀ (n : ℕ), (surfaceAreaMeasure (K n)) {↑a} = (surfaceAreaMeasure L) {↑a}) (hb : ∀ (n : ℕ), (surfaceAreaMeasure (K n)) {↑b} = (surfaceAreaMeasure L) {↑b}) (f : Real.Angle → ℝ) (hf : Continuous f) :
                                                                                          Filter.Tendsto (fun (n : ℕ) => ∫ (u : Real.Angle) in (fun (t : ℝ) => ↑t) '' Set.Ioc a b, f u ∂surfaceAreaMeasure (K n)) Filter.atTop (nhds (∫ (u : Real.Angle) in (fun (t : ℝ) => ↑t) '' Set.Ioc a b, f u ∂surfaceAreaMeasure L))

                                                                                          Hausdorff convergence with fixed endpoint atoms preserves half-open surface integrals.

                                                                                          theorem MovingSofa.tendsto_integral_surfaceAreaMeasure_Ioc_of_preserves_faces (K : ℕ → ConvexBody Point) (L : ConvexBody Point) (hlim : Filter.Tendsto (fun (n : ℕ) => Metric.hausdorffDist ↑(K n) ↑L) Filter.atTop (nhds 0)) {a b : ℝ} (hab : a < b) (hturn : b ≤ a + 2 * Real.pi) (ha : ∀ (n : ℕ), exposedEdge (K n) ↑a = exposedEdge L ↑a) (hb : ∀ (n : ℕ), exposedEdge (K n) ↑b = exposedEdge L ↑b) (f : Real.Angle → ℝ) (hf : Continuous f) :
                                                                                          Filter.Tendsto (fun (n : ℕ) => ∫ (u : Real.Angle) in (fun (t : ℝ) => ↑t) '' Set.Ioc a b, f u ∂surfaceAreaMeasure (K n)) Filter.atTop (nhds (∫ (u : Real.Angle) in (fun (t : ℝ) => ↑t) '' Set.Ioc a b, f u ∂surfaceAreaMeasure L))

                                                                                          Preserving the two endpoint faces supplies the atomic hypotheses for arc convergence.

                                                                                          Moving sofa: related mathematical developments #

                                                                                          Convex / Curve Cut #

                                                                                          theorem MovingSofa.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} ∧ ∃ (t : ℝ) (c : ℝ) (K' : ConvexBody Point), a < t ∧ t < b ∧ inner ℝ P (normalVector ↑t) = c ∧ inner ℝ Q (normalVector ↑t) = c ∧ c < inner ℝ O (normalVector ↑t) ∧ ↑K' = ↑K ∩ 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)

                                                                                          Convex / Arc Cut Area #

                                                                                          theorem MovingSofa.exists_rectifiableOrientedArc_of_cut_with_area (K : ConvexBody Point) {t c d α β : ℝ} {P Q : Point} {U : Set Point} {x : ContinuousBVPaths α β} (hαβ : α < β) (hx : IsOrientedJordanParametrization ⋯ (frontier ↑K) true ↑x) (hPQ : P ≠ Q) (hbase : ↑x ⟨α, ⋯⟩ ∉ segment ℝ P Q) (hfrontier : frontier ↑K = U ∪ segment ℝ P Q) (hinter : U ∩ segment ℝ P Q = {P, Q}) (hPt : inner ℝ P (normalVector ↑t) = c) (hQt : inner ℝ Q (normalVector ↑t) = c) (hterminal : exposedEdge K (↑t + ↑Real.pi) = segment ℝ Q P) (hd : 0 < d) (hdir : Q - P = d • tangentVector ↑t) :

                                                                                          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.

                                                                                          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.

                                                                                          theorem MovingSofa.exists_outerCornerBV (K : ConvexBody Point) (a b : ℝ) :
                                                                                          ∃ (γ : ContinuousBVPaths a b), ∀ (s : ↑(Set.Icc a b)), ↑γ s = (rotatingHallwayParts ↑K ↑↑s).outerCorner

                                                                                          The outer corner of a convex body traces a continuous path of bounded variation over every compact interval of angles.

                                                                                          theorem MovingSofa.exists_outerCornerBV_convexLinear (a b : ℝ) :
                                                                                          ∃ (γ : ConvexBody Point → ContinuousBVPaths a b), (∀ (K : ConvexBody Point) (s : ↑(Set.Icc a b)), ↑(γ K) s = (rotatingHallwayParts ↑K ↑↑s).outerCorner) ∧ IsConvexLinear convexBodyCombination (fun (r : ↑unitInterval) (x y : ContinuousBVPaths a b) => (1 - ↑r) • x + ↑r • y) γ

                                                                                          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.

                                                                                          Moving sofa: related mathematical developments #

                                                                                          Geometry / Convex / Horizontal Extrema #

                                                                                          theorem MovingSofa.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) (hb : b ∈ ↑K) (hab : a.ofLp 0 = b.ofLp 0) (hext : (∀ q ∈ ↑K, q.ofLp 0 ≤ a.ofLp 0) ∨ ∀ q ∈ ↑K, a.ofLp 0 ≤ q.ofLp 0) :
                                                                                          a = b

                                                                                          A horizontal extreme slice is a singleton when every defining normal has nonzero sine.

                                                                                          theorem MovingSofa.ConvexBody.exists_mem_fst_eq_of_mem_Icc (K : ConvexBody Point) {a b : Point} (ha : a ∈ ↑K) (hb : b ∈ ↑K) (hab : a.ofLp 0 < b.ofLp 0) {x : ℝ} (hx : x ∈ Set.Icc (a.ofLp 0) (b.ofLp 0)) :
                                                                                          ∃ q ∈ ↑K, q.ofLp 0 = x

                                                                                          Every horizontal coordinate between two points of a convex body is attained.

                                                                                          Moving sofa: related mathematical developments #

                                                                                          Adapted from GerverSofaLean v1.1.0, F07UpstreamMotion (MIT).

                                                                                          The certified continuous rigid motion carrying Gerver’s sofa through the hallway.

                                                                                          Equations
                                                                                          Instances For

                                                                                            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.

                                                                                            noncomputable def MovingSofa.paperGerverPath (t : ℝ) :

                                                                                            The certified direct five-phase Gerver path, taking the earlier branch at each switch.

                                                                                            Equations
                                                                                            Instances For

                                                                                              Transport along the coordinate identification #

                                                                                              The coordinate identification toPlane is a continuous linear map, so it transports derivatives of plane-valued curves.

                                                                                              The coordinate identification toPlane preserves smoothness of plane-valued curves.

                                                                                              Frame readers #

                                                                                              The angular frame normal is the coordinate image of the standard trigonometric pair.

                                                                                              The angular frame tangent is the coordinate image of the rotated trigonometric pair.

                                                                                              The normal component of a body-frame vector rotated by t is its first coordinate.

                                                                                              The tangential component of a body-frame vector rotated by t is its second coordinate.

                                                                                              The normal frame component of a plane point is the vendor scalar product of its coordinate pair with the vendor normal u.

                                                                                              The tangent frame component of a plane point is the vendor scalar product of its coordinate pair with the vendor tangent v.

                                                                                              The angular frame normal is a smooth function of the angle.

                                                                                              The angular frame tangent is a smooth function of the angle.

                                                                                              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.

                                                                                              Gerver / Paper Set #

                                                                                              Gerver's paper-frame set, cut out by the explicit path of rotated hallways.

                                                                                              Equations
                                                                                              • One or more equations did not get rendered due to their size.
                                                                                              Instances For

                                                                                                Gerver / Parameters #

                                                                                                The five closed stage intervals in their source order.

                                                                                                Equations
                                                                                                Instances For

                                                                                                  The exact direct 22-equation Gerver system, with the certified phase-map convention.

                                                                                                  Equations
                                                                                                  Instances For

                                                                                                    The exact closed rational box for the direct Gerver parameters.

                                                                                                    Equations
                                                                                                    Instances For

                                                                                                      The exact box bounds the second-stage linear coefficient b₁ from below by -53/100.

                                                                                                      The exact box bounds the fourth-stage linear coefficient d₁ from above by 33/25.

                                                                                                      Gerver / Parameter Dictionary #

                                                                                                      Gerver / Partition #

                                                                                                      The ten half-open Gerver phase intervals, indexed from zero.

                                                                                                      Equations
                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                      Instances For

                                                                                                        Gerver / Reverse Physical Domain #

                                                                                                        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 #

                                                                                                        theorem GerverSofa.Romik.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

                                                                                                        Rotating a differentiable body-frame curve and translating it differentiates by the product rule, contributing the infinitesimal rotation (z₁, z₂) ↦ (-z₂, z₁).

                                                                                                        The first direct branch has body-frame velocity alphaBeta1.

                                                                                                        The second direct branch has body-frame velocity alphaBeta2.

                                                                                                        The third direct branch has body-frame velocity alphaBeta3.

                                                                                                        The fourth direct branch has body-frame velocity alphaBeta4.

                                                                                                        The fifth direct branch has body-frame velocity alphaBeta5.

                                                                                                        Continuity of the body-frame velocity field on each branch, transported to the world frame by the rotation.

                                                                                                        Continuity of the body-frame velocity field on each branch, transported to the world frame by the rotation.

                                                                                                        Continuity of the body-frame velocity field on each branch, transported to the world frame by the rotation.

                                                                                                        Continuity of the body-frame velocity field on each branch, transported to the world frame by the rotation.

                                                                                                        Continuity of the body-frame velocity field on each branch, transported to the world frame by the rotation.

                                                                                                        Equation 32 of the direct system. The remaining scalar consequences used here are already extracted by the vendor in GerverSofa/KernelOnly/EndpointSymmetry.lean.

                                                                                                        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.

                                                                                                        The fourth branch velocity reflects onto the second.

                                                                                                        The fifth branch velocity reflects onto the first.

                                                                                                        Velocity matching at the third switch π/2 - θ, by reflecting the match at θ.

                                                                                                        Velocity matching at the fourth switch π/2 - φ, by reflecting the match at φ.

                                                                                                        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 GerverSofa.Romik.path_eq_path1_of_mem_Icc (p : Params) {s : ℝ} (hs : s ∈ Set.Icc 0 p.phi) :
                                                                                                        path p s = path1 p s

                                                                                                        On the closed first stage [0, φ] the glued path is the first branch.

                                                                                                        theorem GerverSofa.Romik.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

                                                                                                        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 GerverSofa.Romik.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

                                                                                                        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 GerverSofa.Romik.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

                                                                                                        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 GerverSofa.Romik.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

                                                                                                        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.

                                                                                                        Smoothness of the branches and of their body-frame velocities #

                                                                                                        The first analytic branch is smooth on all of ℝ.

                                                                                                        The first analytic branch is smooth on all of ℝ.

                                                                                                        The first analytic branch is smooth on all of ℝ.

                                                                                                        The first analytic branch is smooth on all of ℝ.

                                                                                                        The first analytic branch is smooth on all of ℝ.

                                                                                                        The first body-frame velocity pair is smooth on all of ℝ.

                                                                                                        The first body-frame velocity pair is smooth on all of ℝ.

                                                                                                        The first body-frame velocity pair is smooth on all of ℝ.

                                                                                                        The first body-frame velocity pair is smooth on all of ℝ.

                                                                                                        The first body-frame velocity pair is smooth on all of ℝ.

                                                                                                        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.

                                                                                                        theorem GerverSofa.Romik.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)

                                                                                                        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 GerverSofa.Romik.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)

                                                                                                        On the closed first stage the glued path has body-frame velocity alphaBeta1.

                                                                                                        theorem GerverSofa.Romik.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)

                                                                                                        On the closed second stage the glued path has body-frame velocity alphaBeta2.

                                                                                                        theorem GerverSofa.Romik.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)

                                                                                                        On the closed third stage the glued path has body-frame velocity alphaBeta3.

                                                                                                        theorem GerverSofa.Romik.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)

                                                                                                        On the closed fourth stage the glued path has body-frame velocity alphaBeta4.

                                                                                                        theorem GerverSofa.Romik.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)

                                                                                                        On the closed fifth stage the glued path has body-frame velocity alphaBeta5.

                                                                                                        The four switching times separating the explicit Romik path branches.

                                                                                                        Equations
                                                                                                        Instances For

                                                                                                          Gerver / Literal Sets #

                                                                                                          The outer cap defined by all upper path support constraints and the horizontal base.

                                                                                                          Equations
                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                          Instances For

                                                                                                            The union of strict forbidden inner corners above the horizontal base along the Gerver path.

                                                                                                            Equations
                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                            Instances For

                                                                                                              The literal Gerver sofa obtained by removing its niche from its outer cap.

                                                                                                              Equations
                                                                                                              Instances For

                                                                                                                Bundle the literal niche and sofa sets for comparison with the canonical definitions.

                                                                                                                Equations
                                                                                                                Instances For

                                                                                                                  The paper outer cap is the coordinate transport of the certified Romik cap K₀.

                                                                                                                  A point whose coordinate pair lies in the certified Romik cap K₀ lies in the paper outer cap.

                                                                                                                  The paper literal niche is the coordinate transport of the certified Romik niche.

                                                                                                                  Gerver / Literal Connected #

                                                                                                                  Gerver / Parameter Identification #

                                                                                                                  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.

                                                                                                                  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.

                                                                                                                  The two distinguished Gerver angles are interior and complementary.

                                                                                                                  The two distinguished angles are ordered: the certified bound φ ≤ 1/25 puts φ well below π/4 = π/2 - π/4.

                                                                                                                  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.

                                                                                                                  The first stage time is the certified first switching angle params.phi.

                                                                                                                  The second stage time is the certified second switching angle params.theta.

                                                                                                                  The third stage time is the certified reflected angle eta = T - params.theta.

                                                                                                                  The fourth stage time is the certified reflected angle tau = T - params.phi.

                                                                                                                  The fifth stage time is the certified end T of the rotation interval.

                                                                                                                  Gerver / Contacts #

                                                                                                                  Resolve the Gerver path derivative into its normal and tangent frame components.

                                                                                                                  Equations
                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                  Instances For
                                                                                                                    noncomputable def MovingSofa.paperGerverContacts (t : ℝ) :
                                                                                                                    Fin 4 → Point

                                                                                                                    The four standard support-contact points determined by the Gerver path and its derivative.

                                                                                                                    Equations
                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                    Instances For
                                                                                                                      noncomputable def MovingSofa.paperGerverContactData :
                                                                                                                      (ℝ → ℝ × ℝ) × (ℝ → Fin 4 → Point)

                                                                                                                      Bundle the path velocity components and the four contact curves.

                                                                                                                      Equations
                                                                                                                      Instances For
                                                                                                                        noncomputable def MovingSofa.gerverBranchVelocityComponents (i : Fin 5) (t : ℝ) :

                                                                                                                        The explicit body-frame velocity coefficients on a selected Romik branch.

                                                                                                                        Equations
                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                        Instances For

                                                                                                                          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.

                                                                                                                          Identification with the certified piecewise contact data #

                                                                                                                          On the physical rotation interval the paper velocity components agree with the vendor piecewise body-frame coefficients.

                                                                                                                          On the physical rotation interval the four paper contact curves are the coordinate transports of the four certified contact curves.

                                                                                                                          On the physical rotation interval the second paper contact curve is the certified curve B, read in plane coordinates.

                                                                                                                          On the physical rotation interval the fourth paper contact curve is the certified curve D, read in plane coordinates.

                                                                                                                          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.

                                                                                                                          noncomputable def MovingSofa.gerverRoofReverseTime (s : ℝ) :

                                                                                                                          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.

                                                                                                                          Equations
                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                          Instances For
                                                                                                                            noncomputable def MovingSofa.gerverRoofCurve (s : ℝ) :

                                                                                                                            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.

                                                                                                                            Equations
                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                            Instances For
                                                                                                                              noncomputable def MovingSofa.gerverNicheRoof (s : ↑(Set.Icc 0 (Real.pi / 2))) :

                                                                                                                              The three-branch roof of the Gerver niche, using two contact arcs and the reversed path.

                                                                                                                              Equations
                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                              Instances For

                                                                                                                                Gerver / ODEs #

                                                                                                                                noncomputable def MovingSofa.gerverStageContactDerivatives (i : Fin 5) (t : ℝ) :
                                                                                                                                Fin 4 → ℝ

                                                                                                                                Tangential components of the four contact-curve derivatives on a selected stage.

                                                                                                                                Equations
                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                Instances For

                                                                                                                                  Gerver / Outer Contacts #

                                                                                                                                  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).

                                                                                                                                  The six Gerver stage endpoints increase strictly along the rotation interval.

                                                                                                                                  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.

                                                                                                                                  The first Gerver stage runs between the first two stage times.

                                                                                                                                  The second Gerver stage runs between the second and third stage times.

                                                                                                                                  The fourth Gerver stage runs between the fourth and fifth stage times.

                                                                                                                                  The fifth Gerver stage runs between the last two stage times.

                                                                                                                                  The certified direct Gerver path is continuously differentiable.

                                                                                                                                  Each Gerver contact curve is continuous.

                                                                                                                                  Each Gerver contact curve is continuously differentiable on each closed stage interval.

                                                                                                                                  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.

                                                                                                                                  Equations
                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                  Instances For

                                                                                                                                    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.

                                                                                                                                    Equations
                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                    Instances For

                                                                                                                                      Stage derivatives of the two inner contact curves #

                                                                                                                                      The velocity components are the frame coordinates of the derivative of the direct path.

                                                                                                                                      theorem MovingSofa.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) :

                                                                                                                                      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 MovingSofa.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) :

                                                                                                                                      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.

                                                                                                                                      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.

                                                                                                                                      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.

                                                                                                                                      Frame coordinates of the direct path #

                                                                                                                                      The derivative of the direct Gerver path in the moving frame.

                                                                                                                                      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 α.

                                                                                                                                      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 β.

                                                                                                                                      Stagewise monotonicity of the inner contact curves against a fixed direction #

                                                                                                                                      theorem MovingSofa.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) :

                                                                                                                                      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 MovingSofa.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) :

                                                                                                                                      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.

                                                                                                                                      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.

                                                                                                                                      noncomputable def MovingSofa.gerverStageTime (s : ℕ) :

                                                                                                                                      The six stage endpoints indexed by a natural number, constant past 5.

                                                                                                                                      Equations
                                                                                                                                      Instances For
                                                                                                                                        noncomputable def MovingSofa.gerverGridTime (m : ℕ) :

                                                                                                                                        The real grid angle at index m, mirroring GerverAreaCert.ttZ.

                                                                                                                                        Equations
                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                        Instances For

                                                                                                                                          The rotation interval starts at the first stage endpoint 0.

                                                                                                                                          The third stage ends at η = π / 2 - θ.

                                                                                                                                          The fourth stage ends at τ = π / 2 - φ.

                                                                                                                                          The fifth stage ends at π / 2.

                                                                                                                                          Order properties of the stage endpoints and the grid #

                                                                                                                                          The five stage endpoints are strictly increasing.

                                                                                                                                          The integer stage endpoints enclose the real ones.

                                                                                                                                          The integer grid angles enclose the real ones.

                                                                                                                                          The grid angles are strictly increasing.

                                                                                                                                          Strict monotonicity of the grid angles below the top index, from gerverGridTime_lt_succ.

                                                                                                                                          Weak monotonicity of the grid angles below the top index, from gerverGridTime_lt_succ.

                                                                                                                                          The grid angle at a stage boundary is the stage endpoint itself.

                                                                                                                                          The grid starts at 0.

                                                                                                                                          Every grid angle lies in the rotation interval.

                                                                                                                                          The branch index is one of the five stages.

                                                                                                                                          The grid angle does not exceed the right endpoint of its branch.

                                                                                                                                          The grid angle strictly exceeds the left endpoint of its branch, except on the first branch.

                                                                                                                                          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.

                                                                                                                                          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.

                                                                                                                                          The reverse-time reparametrization, and continuity of the roof #

                                                                                                                                          The reverse-time reparametrization is affine, hence continuous.

                                                                                                                                          The reverse-time map sends the start of the middle roof stage to the late path time.

                                                                                                                                          The reverse-time map sends the end of the middle roof stage to the early path time.

                                                                                                                                          The reverse-time map carries the middle roof interval into the central path interval.

                                                                                                                                          The three graph pieces of the roof #

                                                                                                                                          Up to the second stage time the niche roof is the fourth contact curve.

                                                                                                                                          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.

                                                                                                                                          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.

                                                                                                                                          On the rotation interval the real-parameter roof curve is the niche roof.

                                                                                                                                          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.

                                                                                                                                          The first coordinate of the niche roof is strictly increasing, so the roof really is a graph over the horizontal axis.

                                                                                                                                          theorem MovingSofa.gerver_niche_roof_positive (s : ↑(Set.Icc 0 (Real.pi / 2))) (hs : 0 < ↑s ∧ ↑s < Real.pi / 2) :

                                                                                                                                          The niche roof has positive height strictly inside the rotation interval.

                                                                                                                                          Each of the three graph pieces of the niche roof stays inside the paper outer cap.

                                                                                                                                          The strict region between the wall and the graph of f over the parameter set I.

                                                                                                                                          Equations
                                                                                                                                          Instances For

                                                                                                                                            The paper literal niche is exactly the union of the three strict vertical fills under the three graph pieces of the niche roof.

                                                                                                                                            Moving sofa: related mathematical developments #

                                                                                                                                            Cap / Tail / Arcs #

                                                                                                                                            A planar carrier set equipped with ordered start and end points.

                                                                                                                                            • carrier : Set Point

                                                                                                                                              The set traced by the directed arc.

                                                                                                                                            • startPoint : Point

                                                                                                                                              The starting point of the arc.

                                                                                                                                            • endPoint : Point

                                                                                                                                              The ending point of the arc.

                                                                                                                                            Instances For

                                                                                                                                              The directed convex boundary arcs used for the right and left tail bodies.

                                                                                                                                              Equations
                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                              Instances For

                                                                                                                                                Cap / Tail / Space #

                                                                                                                                                noncomputable def MovingSofa.capInnerCorner (K : RightAngleCapSpace) (t : ℝ) :

                                                                                                                                                The real-angle inner-corner path of a cap.

                                                                                                                                                Equations
                                                                                                                                                Instances For

                                                                                                                                                  The two surface densities on the upper half-circle, with the top atom excluded.

                                                                                                                                                  Equations
                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                  Instances For

                                                                                                                                                    The density, corner regularity and strict interior signs of the injectivity condition.

                                                                                                                                                    Equations
                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                    Instances For

                                                                                                                                                      Right-angle caps satisfying injectivity and the cap-area threshold.

                                                                                                                                                      Equations
                                                                                                                                                      Instances For

                                                                                                                                                        A special cap and two convex tails satisfying the support constraints.

                                                                                                                                                        Instances For

                                                                                                                                                          Cap / Corner Measure #

                                                                                                                                                          The normal and tangent components of the inner-corner path derivative.

                                                                                                                                                          Equations
                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                          Instances For
                                                                                                                                                            noncomputable def MovingSofa.capCornerDensity (K : SpecialCapSpace) (s : ℝ) :

                                                                                                                                                            The density formed by joining the two signed corner-velocity components over [0, π].

                                                                                                                                                            Equations
                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                            Instances For

                                                                                                                                                              The measure on the real angle interval defined by the nonnegative corner density.

                                                                                                                                                              Equations
                                                                                                                                                              Instances For

                                                                                                                                                                Push the corner-density measure to angles modulo a full turn.

                                                                                                                                                                Equations
                                                                                                                                                                Instances For

                                                                                                                                                                  The corner measure of a special cap reads its density on the angular image of every measurable subset of [0, π].

                                                                                                                                                                  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.

                                                                                                                                                                  Both frame components of the inner-corner velocity are continuous on the cap domain.

                                                                                                                                                                  The corner density is bounded, being continuous on the two compact halves of the cap domain and zero outside.

                                                                                                                                                                  Finiteness and atomlessness of the corner measure #

                                                                                                                                                                  Cap / Corner Paths #

                                                                                                                                                                  noncomputable def MovingSofa.capCornerBV (K : SpecialCapSpace) {a b : ℝ} (h : Set.Icc a b ⊆ Set.Icc 0 (Real.pi / 2)) :

                                                                                                                                                                  The inner-corner path restricted and bundled as a continuous BV path.

                                                                                                                                                                  Equations
                                                                                                                                                                  Instances For

                                                                                                                                                                    The corner BV path between the two reflected Gerver switching angles.

                                                                                                                                                                    Equations
                                                                                                                                                                    Instances For

                                                                                                                                                                      Cap / Tail / Canonical #

                                                                                                                                                                      The closed half-planes above the right and left inner supporting walls.

                                                                                                                                                                      Equations
                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                      Instances For

                                                                                                                                                                        The right and left canonical tail sets, before bundling their convex-body proofs.

                                                                                                                                                                        Equations
                                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                                        Instances For