{
  "abstract": "The ambidextrous moving sofa problem asks for the largest area of a connected planar shape that can be moved, from one starting position, around the right-angled corner of a hallway of unit width that turns right, and also around the corner of a hallway that turns left. Dan Romik (Experimental Mathematics, 2018) constructed a shape of area M = 1 + 4Y^2 + arctan Y = 1.64495..., where Y = 0.2980... is the positive root of 4Y^3 + 3Y = 1, and proposed it as a likely solution; in 2025 Georgiev, G\u00f3mez-Serrano, Tao and Wagner listed the problem as open.\n\nThis entry proves that Romik's ambidextrous sofa is optimal and that it is the only optimal shape. Every compact connected set that continuous rigid motions, starting in the same orientation, move through both hallways has area at most M, with equality if and only if the set is the image of Romik's sofa by a rotation and a translation. It also proves that Romik's sofa and its images by rotations and translations move through both hallways, that its area is M, that its convex hull is the convex body given by its support function, and that M is Romik's closed form (3 + 2 sqrt 2)^(1/3) + (3 - 2 sqrt 2)^(1/3) - 1 + arctan(((sqrt 2 + 1)^(1/3) - (sqrt 2 - 1)^(1/3))/2).\n\nThe proof splits the convex hull of a sofa into two caps, one for each hallway, and bounds the area of the sofa by the sum of their scores. The score of each cap is at most M/2, with equality only for Romik's cap, and when the area is M the sofa is recovered from its caps. Two steps use Jineon Baek's theorem that Gerver's sofa is optimal for the ordinary moving sofa problem (arXiv:2411.19826); its Lean formalization comes from lean4-moving-sofa and is included in the repository.",
  "authors": [
    {
      "name": "The-Anh Vu-Le"
    }
  ],
  "challenge_render": {
    "artifact_path": "renders/PALOMAR-2026-10-13-000003-v1/b8993c442d86ff55f5d70bbadc1bcd509c68bbea37bb51cae2c13b663fb2f267/",
    "artifact_tree_sha256": "b8993c442d86ff55f5d70bbadc1bcd509c68bbea37bb51cae2c13b663fb2f267",
    "bwrap_source_tag": "v0.12.0",
    "entrypoint": "Challenge/index.html",
    "format": "verso-html",
    "rendered_at": "2026-10-13T01:45:09Z",
    "renderer_commit": "d4e41c1d5b0d114c4859e6e5831dc6d3ad1d0d44",
    "verso_commit": "8fc7a297f14d5adc1a551b5b4ecf283c08bd691f"
  },
  "classification": {
    "arxiv": [
      "math.MG",
      "math.OC"
    ],
    "msc2020": [
      "49Q10",
      "52A10",
      "52A38",
      "52A40",
      "68V20"
    ]
  },
  "first_registered_on": "2026-10-13",
  "formalization": {
    "challenge_path": "Challenge.lean",
    "comparator_config_path": "comparator.json",
    "definition_names": [],
    "formalization_metadata_path": "formalization.yaml",
    "lakefile_path": "lakefile.toml",
    "lean_toolchain": "leanprover/lean4:v4.35.0-rc3",
    "permitted_axioms": [
      "propext",
      "Quot.sound",
      "Classical.choice"
    ],
    "project_dependencies": [
      {
        "name": "mathlib",
        "repository": "leanprover-community/mathlib4",
        "revision": "c55e6e786f49471c72fbddbec5415808896aec1e"
      },
      {
        "name": "plausible",
        "repository": "leanprover-community/plausible",
        "revision": "fb13df72ecefd8ddbf9291021d7f33a8673eb57b"
      },
      {
        "name": "LeanSearchClient",
        "repository": "leanprover-community/LeanSearchClient",
        "revision": "29ff470276c725ae01505d55b17148c18fc7dfd3"
      },
      {
        "name": "importGraph",
        "repository": "leanprover-community/import-graph",
        "revision": "7e81a29bda33a6b257bd37557a6aa6aebe175d96"
      },
      {
        "name": "proofwidgets",
        "repository": "leanprover-community/ProofWidgets4",
        "revision": "c643bbb3c24f8a25f9c14e3a6b1ceb13d01f3de1"
      },
      {
        "name": "aesop",
        "repository": "leanprover-community/aesop",
        "revision": "a90fbf7b02ff06a0deebf74088dff9e5fe02c9ea"
      },
      {
        "name": "Qq",
        "repository": "leanprover-community/quote4",
        "revision": "37b0ba0b26109cf9f9c541f0f9557e50cfa1a3b9"
      },
      {
        "name": "batteries",
        "repository": "leanprover-community/batteries",
        "revision": "3b7c8101932390d60e92a3f3d917901d5b5a773b"
      },
      {
        "name": "Cli",
        "repository": "leanprover/lean4-cli",
        "revision": "843844fa601dd56767b1eb22b7ada5b64d5e567a"
      }
    ],
    "solution_path": "Solution.lean",
    "theorem_names": [
      "Ambidextrous.existsUnique_root",
      "Ambidextrous.value_eq_romik",
      "Ambidextrous.volume_le",
      "Ambidextrous.isAmbidextrous_referenceSofa",
      "Ambidextrous.volume_referenceSofa",
      "Ambidextrous.isAmbidextrous_image_referenceSofa",
      "Ambidextrous.convexHull_referenceSofa",
      "Ambidextrous.volume_eq_iff",
      "Ambidextrous.quarter_turns"
    ]
  },
  "id": "PALOMAR-2026-10-13-000003",
  "preservation": {
    "archive_owner": "PalomarArchive",
    "archived_at": "2026-10-13T01:45:46Z",
    "receipt_sha256": "10c7dfa5c1a3f3c992bf18ca4cbdb5b1be102682cb2bde68ca79b7809608616e",
    "repositories": [
      {
        "commit": "a90fbf7b02ff06a0deebf74088dff9e5fe02c9ea",
        "fork_repository": "PalomarArchive/leanprover-community--aesop--01b46b609077",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/a90fbf7b02ff06a0deebf74088dff9e5fe02c9ea",
        "source_repository": "leanprover-community/aesop"
      },
      {
        "commit": "3b7c8101932390d60e92a3f3d917901d5b5a773b",
        "fork_repository": "PalomarArchive/leanprover-community--batteries--1b4c776305c9",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/3b7c8101932390d60e92a3f3d917901d5b5a773b",
        "source_repository": "leanprover-community/batteries"
      },
      {
        "commit": "7e81a29bda33a6b257bd37557a6aa6aebe175d96",
        "fork_repository": "PalomarArchive/leanprover-community--import-graph--e0a79261b05a",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/7e81a29bda33a6b257bd37557a6aa6aebe175d96",
        "source_repository": "leanprover-community/import-graph"
      },
      {
        "commit": "29ff470276c725ae01505d55b17148c18fc7dfd3",
        "fork_repository": "PalomarArchive/leanprover-community--LeanSearchClient--9de355ab5f53",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/29ff470276c725ae01505d55b17148c18fc7dfd3",
        "source_repository": "leanprover-community/LeanSearchClient"
      },
      {
        "commit": "c55e6e786f49471c72fbddbec5415808896aec1e",
        "fork_repository": "PalomarArchive/leanprover-community--mathlib4--67b3d817d8a2",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/c55e6e786f49471c72fbddbec5415808896aec1e",
        "source_repository": "leanprover-community/mathlib4"
      },
      {
        "commit": "fb13df72ecefd8ddbf9291021d7f33a8673eb57b",
        "fork_repository": "PalomarArchive/leanprover-community--plausible--fb632f6f7bf4",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/fb13df72ecefd8ddbf9291021d7f33a8673eb57b",
        "source_repository": "leanprover-community/plausible"
      },
      {
        "commit": "c643bbb3c24f8a25f9c14e3a6b1ceb13d01f3de1",
        "fork_repository": "PalomarArchive/leanprover-community--ProofWidgets4--26014acbbaff",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/c643bbb3c24f8a25f9c14e3a6b1ceb13d01f3de1",
        "source_repository": "leanprover-community/ProofWidgets4"
      },
      {
        "commit": "37b0ba0b26109cf9f9c541f0f9557e50cfa1a3b9",
        "fork_repository": "PalomarArchive/leanprover-community--quote4--90d31d153685",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/37b0ba0b26109cf9f9c541f0f9557e50cfa1a3b9",
        "source_repository": "leanprover-community/quote4"
      },
      {
        "commit": "843844fa601dd56767b1eb22b7ada5b64d5e567a",
        "fork_repository": "PalomarArchive/leanprover--lean4-cli--df175a7fc790",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/843844fa601dd56767b1eb22b7ada5b64d5e567a",
        "source_repository": "leanprover/lean4-cli"
      },
      {
        "commit": "0f24fe48b4cadf02a442420e677b45a036136dbf",
        "fork_repository": "PalomarArchive/vltanh--lean4-ambidextrous-sofa--1b8cd0a61272",
        "ref": "refs/tags/palomar/PALOMAR-2026-10-13-000003-v1/0f24fe48b4cadf02a442420e677b45a036136dbf",
        "source_repository": "vltanh/lean4-ambidextrous-sofa"
      }
    ]
  },
  "provenance": {
    "mathematical_sources": [
      {
        "authors": [],
        "relationship": "other",
        "title": "Optimality and uniqueness of Romik's ambidextrous sofa",
        "type": "original-proof"
      },
      {
        "author_endorsement": "not-contacted",
        "authors": [
          {
            "name": "Dan Romik"
          }
        ],
        "identifier": "doi:10.1080/10586458.2016.1270858",
        "location": "Experimental Mathematics 27 (2018), no. 3, 316-330; arXiv:1606.08111",
        "relationship": "background",
        "title": "Differential Equations and Exact Solutions in the Moving Sofa Problem",
        "type": "paper"
      },
      {
        "author_endorsement": "not-contacted",
        "authors": [
          {
            "name": "Jineon Baek"
          }
        ],
        "identifier": "arXiv:2411.19826v1",
        "location": "https://arxiv.org/abs/2411.19826v1",
        "relationship": "background",
        "title": "Optimality of Gerver's Sofa",
        "type": "paper"
      },
      {
        "author_endorsement": "n/a",
        "authors": [
          {
            "name": "Bogdan Georgiev"
          },
          {
            "name": "Javier G\u00f3mez-Serrano"
          },
          {
            "name": "Terence Tao"
          },
          {
            "name": "Adam Zsolt Wagner"
          }
        ],
        "identifier": "arXiv:2511.02864v3",
        "location": "https://arxiv.org/abs/2511.02864v3",
        "relationship": "background",
        "title": "Mathematical exploration and discovery at scale",
        "type": "paper"
      },
      {
        "author_endorsement": "n/a",
        "authors": [
          {
            "name": "Leo Moser"
          }
        ],
        "location": "SIAM Review 8 (1966), no. 3, 381",
        "relationship": "background",
        "title": "Problem 66-11, Moving Furniture Through a Hallway",
        "type": "paper"
      }
    ],
    "related_formalizations": [
      {
        "identifier": "https://github.com/vltanh/lean4-moving-sofa",
        "note": "The formalization of Baek's optimality theorem for the ordinary problem, by the same maintainer, registered in Palomar as PALOMAR-2026-10-02-000008. Its library MovingSofaOptimality, at commit 1174c5c25c1c66b807e368446d6682e8d0276759, is copied unchanged into this repository, for Baek's theorem and the area of Gerver's sofa; the Challenge does not use it. Dean Cureton's MovingSofa and Ruifeng Cao's sofa-formal also formalize the ordinary problem; docs/prior-work.md compares them. The earlier formal statement of the ambidextrous conjecture is listed separately below.",
        "relationship": "builds-on"
      },
      {
        "identifier": "https://github.com/google-deepmind/formal-conjectures/pull/6424",
        "note": "An earlier Lean formalization of the ambidextrous sofa conjecture, proposed by frvnkliu on 19 September 2026 in FormalConjectures/Wikipedia/MovingSofa.lean. At commit b5289b1114c76b2c8a99407580d0ebb3adbb9ea4, it defines ambidextrous sofas, their area supremum and Romik's exact area, and states ambidextrousSofaConstant_eq_romiksSofa_area as an open conjecture with a sorry proof. The lower-bound statement also has a sorry proof; supporting facts, including the unit-square example, cubic-root uniqueness and the comparison with the ordinary sofa constant, are proved. This is an earlier formal statement and partial development, not a proof of global optimality or uniqueness. The present repository supplies proofs of optimality and uniqueness and constructs the maximizing shape. The earlier statement was consulted for the prior-work comparison in docs/prior-work.md; its declarations are not imported by this project. The source is pinned at https://github.com/frvnkliu/formal-conjectures/blob/b5289b1114c76b2c8a99407580d0ebb3adbb9ea4/FormalConjectures/Wikipedia/MovingSofa.lean.",
        "relationship": "independent"
      }
    ],
    "repository_role": "substantive-development",
    "responsible_maintainers": [
      {
        "name": "The-Anh Vu-Le"
      }
    ],
    "result_origin": "original"
  },
  "registered_at": "2026-10-13T01:45:18Z",
  "review": {
    "outcome": "neutral",
    "policy_commit": "96b034cc31a72a63d4f4041911dce337a85c9a04",
    "report": {
      "sha256": "6ada0a91e27059c44478ab7f4f703b0664c017fb77e2a37525b65f51326df8ef"
    },
    "reviewed_at": "2026-10-12T14:12:24Z",
    "reviewer_models": [
      "codex:gpt-6-sol"
    ],
    "warnings": []
  },
  "schema_version": 5,
  "source": {
    "commit": "0f24fe48b4cadf02a442420e677b45a036136dbf",
    "license": {
      "declared_identifier": "Apache-2.0",
      "detected_identifier": "Apache-2.0",
      "path": "LICENSE",
      "sha256": "b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1"
    },
    "repository": "vltanh/lean4-ambidextrous-sofa",
    "repository_url": "https://github.com/vltanh/lean4-ambidextrous-sofa",
    "tree_url": "https://github.com/vltanh/lean4-ambidextrous-sofa/tree/0f24fe48b4cadf02a442420e677b45a036136dbf"
  },
  "status": "registered",
  "submission": {
    "authorization": {
      "relationship": "maintainer"
    },
    "submission_id": "0yw1p61avogm"
  },
  "title": "Optimality and uniqueness of Romik's ambidextrous sofa, formalized in Lean 4",
  "trust": {
    "challenge_bytes": 16145,
    "challenge_dependencies": [
      {
        "provenance": "allowlisted",
        "repository": "leanprover-community/mathlib4"
      }
    ],
    "challenge_imports": [
      "Mathlib.Analysis.Convex.Hull",
      "Mathlib.Analysis.SpecialFunctions.Pow.Real",
      "Mathlib.Analysis.SpecialFunctions.Trigonometric.Arctan",
      "Mathlib.MeasureTheory.Measure.Lebesgue.Basic",
      "Mathlib.Topology.Connected.Basic"
    ],
    "challenge_lines": 270,
    "level": "high",
    "reasons": []
  },
  "verification": {
    "bwrap_source_tag": "v0.12.0",
    "challenge_sha256": "fa5b388a673c3ce5b01b2872d2bd73265544afe452f377afd2600e8409a401bb",
    "evidence_path": "evidence/PALOMAR-2026-10-13-000003-v1/4f457af7547f7143d2c5171339bd7e7d905d9eb6647f871bdf14a2eb2ed7567e/",
    "evidence_tree_sha256": "4f457af7547f7143d2c5171339bd7e7d905d9eb6647f871bdf14a2eb2ed7567e",
    "kernels": [
      {
        "argv": [
          "/home/runner/.elan/toolchains/leanprover--lean4---v4.35.0-rc3/bin/nanoda_bin"
        ],
        "name": "nanoda"
      },
      {
        "argv": [
          "/home/runner/.elan/toolchains/leanprover--lean4---v4.35.0-rc3/bin/con-ron",
          "--jobs=2"
        ],
        "name": "con-ron"
      }
    ],
    "mechanical_report_sha256": "b0bd6dd03720f33c2c13f1cb2e7fa0aedc3adcf3d089143051c7ce7d4b261dfd",
    "protected_config_sha256": "7409c9f2cde589dba654e5e7d07c66cc54cd2e65dd91996179c1d750fb2eaa12",
    "repository": "PalomarRegistry/PalomarSubmission",
    "run_id": 38256912846,
    "solution_sha256": "8b7101e3eb1fc89069f0043817805ddcf1e6cf07e39f13c1cb14a8b2f4b6d8e1",
    "tool_digests": {
      "bwrap": "f880a8ddd4095b8c073e55665675843dc4f1cc8084ae30f2cc22e49cea9f2719",
      "con-ron": "4e5616d94374cae37324dad2594f6230c2bb2297240249fc78ff508f3bc5acef",
      "lake": "8ba83c98f76562d03b8dbc33f1057151ba6cbb121679dde76b2260ccc90495e1",
      "lean": "bf8d54e4714cc4b03d3f6bb34c83b7202b87e49c8bfcbff6895c085bb90ceb38",
      "leanchecker": "9e36e955a251b1313c8eb5b7fa101282d51df109d34d8bb7c1cfdf51985aba29",
      "leanexport": "c5bc1a10a21e22cbb3671d65987cdef2076833b14182d823ccb2153adf2fa954",
      "nanoda_bin": "8241c5e6baa29490aa118d382f97961b208ae730fdb96545c2abed74c9ece5a8"
    },
    "toolchain_commit": "470d5ce1400764999581fd26d5d72b00d990b0f4",
    "verified_at": "2026-10-12T13:52:49Z",
    "workflow_commit": "d4e41c1d5b0d114c4859e6e5831dc6d3ad1d0d44",
    "workflow_path": ".github/workflows/submission.yml",
    "workflow_run_attempt": 1,
    "workflow_url": "https://github.com/PalomarRegistry/PalomarSubmission/actions/runs/38256912846"
  },
  "version": 1
}
