Moving sofa: related mathematical developments #
Area.Applications.Development001.Area.Applications.Development002.Area.Applications.Development003.Cap.Applications.Development001.Gerver.Applications.Development001.Gerver.Applications.Development002.Polygon.Applications.Development001.
Moving sofa: related mathematical developments #
Area.Middle.
The middle part of the niche #
capMiddle_area_lower_bound bounds the area of the part of a special cap's niche outside both
distinguished tail half-planes from below by the three signed areas of the middle fan: the two
wedge triangles and the inner-corner arc.
The geometry is that of the paper's proof. Writing φ for the right distinguished angle,
l = π/2 - φ for the left one and k = tan φ, the two distinguished tail support lines are
X = w - k y and X = z + k y, where w and z are the horizontal coordinates of the two fan
points W and Z; the inner corner runs from the first line to the second through the open cone
between them, with strictly decreasing horizontal coordinate. Adding a base line y = -h strictly
below the arc turns the arc together with the two side segments into a strictly monotone
three-piece roof over that base line, and the region under the roof exceeds the base trapezoid by
the asserted three signed areas. Every point of the open region above the trapezoid lies in the
niche, because the roof point vertically above it exhibits a time whose open inward quadrant
contains it.
The middle area bound obtained from cap area, endpoint segments and the corner-path integral.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Arithmetic of a side segment of the middle cone #
The two side segments of the four-piece loop run along the two tail support lines, so their
displacements (Δ₀, Δ₁) satisfy Δ₀ cos = Δ₁ sin for the relevant frame angle. The two lemmas
below are the resulting sign computations for a point δ below such a segment.
The cone between the two distinguished tail support lines #
The niche contains the open region above the base trapezoid #
The lower estimate #
Moving sofa: related mathematical developments #
Area.Mamikon.Properties.
Area / Mamikon / Properties #
The tangential displacement from an exposed-edge endpoint to the path, extended by zero.
Equations
- MovingSofa.mamikonOffset K z t = if ht : t ∈ Set.Icc a b then inner ℝ (↑z ⟨t, ht⟩ - (MovingSofa.edgeVertices K ↑t).1) (MovingSofa.tangentVector ↑t) else 0
Instances For
Half the square integral of a bounded measurable family of integrands that is pointwise convex-linear in its parameter is a quadratic and convex functional of that parameter.
The Mamikon offset is convex-linear in the body along a convex-linear family of paths.
Moving sofa: related mathematical developments #
Area.Mamikon.Tails.
Area / Mamikon / Tails #
The signed area between a convex boundary arc and its endpoint tangent segments.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Mamikon value of the right tail on its Gerver angle interval.
Equations
Instances For
The Mamikon value of the left tail on its Gerver angle interval.
Equations
- MovingSofa.leftTailMamikon D = MovingSofa.tangentMamikonValue D (3 * Real.pi / 2) (3 * Real.pi / 2 + MovingSofa.paperGerverConstants.2.2)
Instances For
Bundle the right and left tail Mamikon functionals.
Equations
Instances For
The support and endpoint identities of a cap-tail triple, in segment-area form.
Moving sofa: related mathematical developments #
Cap.PolylineBoundary.Cap.PolylineDefinition.Cap.Polyline.Cap.UpperBoundary.Polygon.
Cap / Polyline Boundary #
The slope and intercept of the inner D-wall line at angle t.
Equations
Instances For
The lower boundary height of a polygon cap after removing its niche.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The fan outside the polygon niche is the epigraph of its boundary height.
The cap outside its polygon niche is closed, with frontier the boundary graph.
Every compact interval of the polygon-cap boundary graph is a finite polyline.
The lower endpoint of the zero-angle cap face lies on the horizontal axis.
The terminal positive cap contact lies on the lower fan ray.
The terminal cap contacts occur in strictly increasing horizontal order.
The right cap contact lies on the boundary graph.
The left cap contact lies on the boundary graph.
The open ray to the right of a polygon-cap boundary is the right graph tail.
The open ray to the left of a polygon-cap boundary is the left graph tail.
Cap / Polyline Definition #
The polyline and two disjoint endpoint rays describe the fan-minus-niche frontier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Cap / Polyline #
A chosen monotone polyline describing the polygonal cap’s niche boundary.
Equations
Instances For
Sum the lengths of polyline edges perpendicular to a prescribed wall direction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cap’s surface measure at each wall direction equals the corresponding polyline length.
Equations
- MovingSofa.IsBalancedPolygonCap K = ∀ (t : ↑(MovingSofa.angleDomain Θ)), (MovingSofa.surfaceAreaMeasure ↑↑K) {↑↑t} = ENNReal.ofReal (MovingSofa.polygonCapPolylineLength K t)
Instances For
Cap / Upper Boundary / Polygon #
The terminal cap contacts bound every horizontal coordinate of a polygon cap.
The sine-weighted exposed-face lengths equal the horizontal separation of cap contacts.
Moving sofa: related mathematical developments #
Gerver.Area.Evaluator.Gerver.Area.CapFan.Gerver.Area.NicheCover.Gerver.Area.
Soundness of the contact evaluator #
GerverAreaCert.evalZ s z kind evaluates one of the five phase formulas of Gerver's sofa,
and one of its four contact curves, on an interval of rotation angles. This module proves
that it encloses the analytic value: gerverBranch_eq identifies the branch that the
piecewise vendor definitions GerverSofa.Romik.path and GerverSofa.PartC.alphaBetaAt
select, the five per-stage lemmas verify the phase formulas and the two velocity
coefficients against GerverSofa.Romik.path1 … path5 and
GerverSofa.Romik.alphaBeta1 … alphaBeta5, and evalZ_sound assembles them through the
coordinate dictionary fromPlane_paperGerverContacts. contactZ_sound and
evalZ_interval_sound specialise this to a grid angle and to a whole grid subinterval.
The contact evaluator #
The five certified phase maps, selected by stage index.
Equations
- MovingSofa.gerverBranchPath 1 = GerverSofa.Romik.path1 GerverSofa.PartB.params
- MovingSofa.gerverBranchPath 2 = GerverSofa.Romik.path2 GerverSofa.PartB.params
- MovingSofa.gerverBranchPath 3 = GerverSofa.Romik.path3 GerverSofa.PartB.params
- MovingSofa.gerverBranchPath 4 = GerverSofa.Romik.path4 GerverSofa.PartB.params
- MovingSofa.gerverBranchPath x✝ = GerverSofa.Romik.path5 GerverSofa.PartB.params
Instances For
The five certified velocity-coefficient pairs, selected by stage index.
Equations
- MovingSofa.gerverBranchAlphaBeta 1 = GerverSofa.Romik.alphaBeta1 GerverSofa.PartB.params
- MovingSofa.gerverBranchAlphaBeta 2 = GerverSofa.Romik.alphaBeta2 GerverSofa.PartB.params
- MovingSofa.gerverBranchAlphaBeta 3 = GerverSofa.Romik.alphaBeta3 GerverSofa.PartB.params
- MovingSofa.gerverBranchAlphaBeta 4 = GerverSofa.Romik.alphaBeta4 GerverSofa.PartB.params
- MovingSofa.gerverBranchAlphaBeta x✝ = GerverSofa.Romik.alphaBeta5 GerverSofa.PartB.params
Instances For
On a grid angle of stage s both piecewise definitions select branch s.
Per-stage soundness of the phase-map evaluation, i.e. of the kind = 0 output.
Pure interval arithmetic against GerverSofa.Romik.path1 … path5: five cases, each a chain
of SI.contains_* applications on top of contains_params, hsin and hcos.
Per-stage soundness of the B and D offsets, i.e. of the two velocity
coefficients α and β against GerverSofa.Romik.alphaBeta1 … alphaBeta5. Note
evalZ s z 1 = evalZ s z 2 shifted by (cos x, sin x) and
evalZ s z 3 = evalZ s z 4 shifted by (-sin x, cos x), so the remaining two kinds need no
separate stage analysis.
Soundness of the executable phase/contact evaluator: on the branch that the
piecewise definitions select, the interval evaluation encloses both coordinates of the
selected curve. Reduces to gerverBranch_eq, evalZ_zero_sound, evalZ_offset_sound,
trigZ_sound and the coordinate dictionary
fromPlane_paperGerverContacts (GerverSofa.u t = (cos t, sin t),
GerverSofa.v t = (-sin t, cos t)).
The left endpoint of the branch selected at the right end of a grid subinterval does not exceed the left end of that subinterval.
The evaluator at a grid angle.
The evaluator over a whole grid subinterval, on the branch selected at its right endpoint (which is the branch of every angle in the half-open subinterval).
The support-contact fan of the Gerver outer cap #
The literal Gerver outer cap is a compact convex subset of the plane lying in the closed
quadrant above the fan anchor L = C (π / 2), which sits on the wall. The 640 listed
contacts A (t) and C (t) at the grid angles attain the cap support at the strictly
increasing normals t and t + π / 2 of [0, π), so supportContact_fan_area bounds the
cap area below by half the shoelace sum of the fan over the anchor. The certificate
encloses that sum (capDoubledZ_sound), and its kernel-checked numeric conclusion
GerverAreaCert.capOK_true turns the enclosure into 28609 / 10000 ≤ |K₀|.
Elementary geometry of the outer cap #
The paper path starts at the origin.
The outer cap written as an intersection of closed half-planes.
The outer cap is closed, being an intersection of closed half-spaces.
The outer cap is convex, being an intersection of half-spaces.
The outer cap is compact: it is closed and contained in a coordinate rectangle.
The outer cap is Borel measurable.
The outer cap has finite planar volume.
The support-contact fan and the cap lower bound #
The fan anchor L = C (π / 2).
Equations
Instances For
The i-th listed support contact, i < fanCount.
Equations
Instances For
The support normal of the i-th listed contact.
Equations
Instances For
A t attains the cap support at normal t.
C t attains the cap support at normal t + π / 2.
The anchor sits on the wall.
The cap lies in the closed quadrant above the anchor.
The listed support normals are strictly increasing.
The listed support normals lie in [0, π).
Every listed contact lies in the cap.
Every listed contact attains the cap support at its listed normal.
The certificate encloses the fan shoelace sum.
The cap area lower bound.
The rectangle cover of the literal Gerver niche #
The literal niche is the union of the strict vertical fills under the three pieces of its
roof (gerver_niche_vertical_fills). Each piece is traversed with monotone horizontal
coordinate, so subdividing the seven monotone roof stretches at the grid angles covers the
niche by 7 * NN coordinate rectangles whose widths and heights the certificate encloses
(gerverNicheRect_covers). The kernel-checked numeric conclusion
GerverAreaCert.nicheOK_true bounds the total rectangle area, hence |N₀| ≤ 3301 / 5000.
The literal niche is Borel measurable: it is a closed half-plane intersected with a countable union of open sets.
The rectangle cover and the niche upper bound #
The covering rectangle of the j-th subinterval of roof piece r.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A strict vertical fill splits along a subdivision of its parameter interval.
Each roof piece has monotone horizontal coordinate in the direction recorded by
rowFwd.
Each covering rectangle contains the strict vertical fill of its subinterval.
The 7 * NN rectangles cover the literal niche.
The planar volume of one covering rectangle.
The certificate bounds the total rectangle volume.
The niche volume bound.
Rational area bounds for the canonical Gerver sofa #
The canonical Gerver sofa is the paper's literal set (gerver_canonical_paper_literal), the
difference of the literal outer cap and the literal niche. The cap and the niche are Borel
of finite area with 28609 / 10000 ≤ |K₀| and |N₀| ≤ 3301 / 5000
(gerver_geometric_area_bounds), both numeric bounds coming from the kernel-checked
certificate MovingSofa.Gerver.AreaCertificate through the fan bound of
MovingSofa.Gerver.Area.CapFan and the rectangle cover of
MovingSofa.Gerver.Area.NicheCover. Subadditivity of area then gives
11 / 5 ≤ |G| (gerver_area_lower_bound).
Moving sofa: related mathematical developments #
Gerver.CapIdentification.Gerver.Niche.Identification.Gerver.SurfaceDensity.Gerver.VelocityAndCapArea.
Gerver / Cap Identification #
Gerver / Niche / Identification #
Surface densities of the certified Gerver cap #
The certified Gerver cap carries the two envelope densities GerverSofa.PartC.Stage2.rhoA and
rhoC of the vendor development: its surface-area measure is rhoA (t) dt on the angular arc
[0, π/2) and rhoC (t - π/2) dt on (π/2, π].
The argument is stage by stage. On each of the five closed stages the selected (positive) vertex
of the cap is a globally analytic branch of the certified phase curves, with derivative
rhoA t • v t for the first contact and -rhoC t • u t for the third, so
surfaceAreaMeasure_angleImage_eq_withDensity_of_hasDerivAt identifies the surface measure with
the exact Lebesgue density on that stage. The stages are then glued with
measure_angleImage_eq_of_union; only the last rhoA stage needs an interior exhaustion,
because the positive vertex jumps at π/2.
The same stagewise phase curves describe the two inner contacts, because B = A - u and
D = C - v differ from the outer contacts by a frame vector
(paperGerverContacts_one_eq_sub, paperGerverContacts_three_eq_sub). Subtracting the frame
vector from a phase curve therefore produces a globally differentiable branch curve for B on
the last two stages and for D on the first two, with the nonnegative speeds 1 - rhoA and
1 - rhoC (exists_branch_paperGerverContacts_one,
exists_branch_paperGerverContacts_three); the two speed bounds are again coarse box bounds on
the certified parameters.
Coordinate transport of derivatives #
The certified switching angles #
The contact curves as transported certified phase curves #
Contact derivatives on the open stages #
A branch curve agreeing with a global curve on a closed stage computes the global derivative at every interior parameter of that stage.
Singleton faces have no surface atom #
Measurability and boundedness of the two envelope densities #
Elementary facts about the stage endpoints and the frame #
Almost every parameter lies in an open stage #
A parameter of the rotation interval that is none of the six stage times lies in an open stage.
Almost every parameter of a measurable subset of the shifted rotation interval lies in a shifted open stage.
Branch curves for the two inner contacts #
The second contact B = x + α v is the first contact A = x + α v + u translated by -u, and
the fourth contact D = x - β u is the third contact C = x - β u + v translated by -v. So
subtracting a frame vector from the transported phase curve of a stage produces a globally
differentiable branch curve for B and for D, whose speed against the frame is 1 - rhoA
resp. 1 - rhoC. Both are nonnegative exactly where the inner contact is a genuine contact:
after the third stage time for B and before the second for D.
The second contact curve is the first one translated by -u_t.
The fourth contact curve is the third one translated by -v_t.
On each of the last two stages the second contact curve agrees with a globally differentiable
branch curve whose derivative is -(g t) • v_t for a continuous factor g that is nonnegative
on the stage.
On each of the first two stages the fourth contact curve agrees with a globally differentiable
branch curve whose derivative is g t • u_t for a continuous factor g that is nonnegative on
the stage.
The certified cap witness and its positive vertex curves #
The stagewise density identities #
Exhausting the last stage of the first arc from inside #
Gluing two adjacent arcs #
The density identity on each full arc #
Gerver / Velocity And Cap Area #
The tangential velocity component is nonpositive on the whole closed rotation interval:
the strict inequality of gerver_strict_velocity holds on the open interval, and the
component is continuous, so the closed condition propagates to the two endpoints.
The normal velocity component is nonnegative on the whole closed rotation interval; see
paperGerverVelocityComponents_fst_nonpos for the argument.
Moving sofa: related mathematical developments #
Polygon.BalancedContainment.Polygon.Polyline.Length.Basic.Polygon.Polyline.Length.Boundary.Polygon.Polyline.Length.Polygon.Balancing.Coefficients.Polygon.Balancing.Estimate.Polygon.Balancing.Polygon.EdgeNormals.
Polygon / Balanced Containment #
Balance bounds the polyline projections by the surface-area atoms.
A balanced polygon cap bounds every upper-normal projection of its polyline.
The polyline of a balanced polygon cap lies inside the cap.
A polygon niche lies in its cap whenever its upper boundary polyline does.
Every balanced polygon cap contains its polygon niche.
Polygon / Polyline / Length / Basic #
Extend the directional polyline-length function by zero outside the angle domain.
Equations
- MovingSofa.polygonPolylineLengthAt K t = if ht : t ∈ MovingSofa.angleDomain Θ then MovingSofa.polygonCapPolylineLength K ⟨t, ht⟩ else 0
Instances For
The one-dimensional Hausdorff measure of the niche frontier inside a specified set.
Equations
- MovingSofa.nicheBoundaryLength K S = ((MeasureTheory.Measure.hausdorffMeasure 1) (frontier (MovingSofa.polygonNiche Θ ↑K) ∩ S)).toReal
Instances For
Polygon / Polyline / Length / Boundary #
The fan clipping the niche is closed.
The inward quadrant of a supporting hallway is open.
The niche trace on a fan line is the lower face length minus polyline length.
Inner-wall and inner-ray niche lengths agree with the corresponding polyline lengths.
Polygon / Polyline / Length #
Polygon / Balancing / Coefficients #
A convex body's frontier on a supporting line is its exposed edge.
The surface-area atom is the length of the frontier on its supporting line.
An endpoint cap's lower wall has the surface-area atom of the opposite normal.
Away from endpoint normals, the niche boundary on the lower wall has polyline length.
At an endpoint normal, the lower-wall niche length is the opposite-face length minus the polyline length.
Polygon / Balancing / Estimate #
The balancing area estimate when the perturbed normal is not an endpoint.
The balancing area estimate for a simultaneous endpoint-wall displacement.
Polygon / Balancing #
A support-height increment has the balancing first-order area term.
A maximum polygon cap has balanced boundary coefficients.
Edge normals and contact vertices of a finite half-plane intersection #
A convex body presented as a finite intersection of closed half-planes has only finitely many possible contact points and only finitely many possible proper edge normals. This file records both facts in the form used by the discrete estimates on polygon caps:
exists_active_constraint_of_mem_notMem_interior: a boundary point activates a constraint;exists_active_constraint_of_forall_notMem_add_smul: a direction that immediately leaves the body activates a constraint increasing along it;properEdgeNormal_eq_constraint_or_add_pi: a nondegenerate exposed edge has a constraint normal, up to half a turn;properEdgeNormal_eq_constraint: the same, without the antipodal alternative;PolygonCapSpace.properEdgeNormal_mem_allowed_or_antipodalandPolygonCapSpace.properEdgeNormal_mem_allowed: the polygon-cap versions;finiteConstraintVertices: the finite set of transversal constraint-line intersections, which contains every singleton exposed edge;PolygonCapSpace.surfaceAreaMeasure_compl_properEdgeNormals_eq_zero: the surface measure of a polygon cap is carried by its proper edge normals.
A point of a finite half-plane intersection off its interior lies on an active constraint.
A nondegenerate exposed edge has the normal angle of one of the constraints, up to half a turn.
If a direction immediately leaves a finite intersection of closed half-planes at a point of it, some constraint is active there and increases along that direction.
The normal of a nondegenerate exposed edge of a finite intersection of closed half-planes is itself a constraint normal.
The allowed normal set of a polygon cap is finite.
Every nondegenerate exposed edge of a polygon cap has an allowed or antipodal normal.
Every proper edge normal of a polygon cap is an allowed normal.
The finitely many transversal intersection points of a finite constraint family.
Equations
- MovingSofa.finiteConstraintVertices C = ⋃ c ∈ C, ⋃ d ∈ C, if c.1 = d.1 ∨ c.1 = d.1 + ↑Real.pi then ∅ else MovingSofa.normalLine c.1 c.2 ∩ MovingSofa.normalLine d.1 d.2
Instances For
A finite constraint family has finitely many transversal intersection points.
A singleton exposed edge of a finite half-plane intersection is a constraint vertex.
The transversal constraint vertices form a one-dimensional null set.
Surface measure of a finite intersection of closed half-planes is carried by its proper edge normals.
Surface measure of a polygon cap is carried by its proper edge normals.